Werkzeug不包含wsgi模块。

3
我正在尝试在目前已成功运行5.0分支的开发环境中运行OpenERP的6.1分支。我在Ubuntu 10.04 Lucid Lynx上运行。虽然我已经克服了一些障碍,但我当前遇到了一个错误,这个错误是由http模块中的import werkzeug.wsgi引起的。 我添加了python-werkzeug包,但它并不包括wsgi模块。我查看了该软件包的网页,发现我的Ubuntu版本得到的werkzeug是0.5.1,而较新版本都至少有0.6.2。当我比较werkzeug 0.5werkzeug 0.6的源代码时,我可以看到wsgi模块是在这些版本之间添加的。 我如何在Ubuntu 10.04上运行至少版本0.6的werkzeug?这显示我已经拥有最新版本:
sudo apt-get install python-werkzeug
4个回答

5

软件包管理工具aptitude在Python项目中通常过于陈旧,就像此时此地一样。使用Python的包管理工具pip可能更好。Pip告诉我,werkzeug目前处于版本0.8.1

首先安装pip(如果您还没有安装)

sudo easy_install pip

然后安装werkzeug。
sudo pip install werkzeug

Easy install不再是Python包的推荐安装方式 - 您应该使用pip

这些命令将包安装到您机器的全局Python环境中。您可以考虑使用virtualenv,它创建了单独的Python解释器,可以安装自己的包。

祝您好运!


2
请注意,在运行此命令之前,您应该卸载apt-get的版本,使用sudo apt-get remove --purge python-werkzeug - adamnfish
是的,除非您已经尝试安装依赖于它的软件包(例如OpenERP 6.1),否则这也会导致其被删除。我尝试了sudo pip install --upgrade werkzeug,它可以正常工作。 - Hosam Aly
@HosamAly 这就是为什么你应该使用 virtualenv 的原因!你现在只能安全地使用 OpenERP 依赖的 werkzeug 版本。如果 werkzeug 发生了重大变化,而你运行了 pip 命令,可能会导致系统不稳定。相反,如果你选择使用系统版本,你将错过一些功能和修复。使用 virtualenv --no-site-packages <name> 为每个项目创建一个干净的专用 Python 解释器,在那里安装该项目的依赖项,使用 <name>/bin/python 下的解释器运行它。 - adamnfish
谢谢。我不知道virtualenv;看起来值得一试。 - Hosam Aly

2

我终于在Werkzeug文档中找到了答案。似乎easy_install从其他地方获取:

sudo easy_install Werkzeug

简单安装从Python软件包索引(Pypi-http://pypi.python.org/pypi)查找软件包。然而,使用`pip`会更好,因为它是一个更完整的软件包管理工具 :) - adamnfish


0
在我的情况下,我在完成所有这些步骤后解决了这个问题:
1- pip install -r requeriments.txt
2- pip3 install -r requeriments.txt
3- sudo pip3 install -r requeriments.txt
4- python -m pip install -r requirements.txt
5- sudo python3 -m pip install -r requirements.txt
6- cd /usr/bin/local and check the available version of python, then
     . /usr/local/bin/python3.7 -m pip install -r requirements.txt
     . sudo /usr/local/bin/python3.7 -m pip install -r requirements.txt

总结起来,原因是同步使用的Python版本。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接