我已经安装了金字塔并成功创建了一个项目,但是当我尝试向setup.py要求添加新包时,他们总是给我一个pkg_resources.DistributionNotFound错误。
安装了软件包,只有在我运行后尝试安装新软件包时才会发生这种情况../bin/python3.3 setup.py develop它是什么软件包并不重要。
我解决(不是真的)的唯一方法是在创建项目并运行setup.py develop之前设置一个新的虚拟环境并安装软件包。
显然我做错了什么。除了pip安装包之外还有什么需要做的吗?这是一种路径问题吗?我是新手,所以非常感谢你的帮助!
* 添加我的安装过程,万一有人碰巧看到它有问题。还包括我的wsgi文件。
创造了一个虚拟现实
easy_install-3.3 env
激活了virtualenv
source env/bin/activate
已安装的金字塔
cd env
./bin/easy_install-3.3 pyramid
创建了一个项目
./bin/pcreate -s starter myprojectname
Ran setup.py
cd myprojectname
../bin/python3.3 setup.py develop
此时我收到以下错误:pkg_resources.DistributionNotFound:waitress
已安装的女服务员
../bin/easy_install-3.3 waitress
再次尝试setup.py(不确定我是否应该这样做)
../bin/python3.3 setup.py develop
仍然看到错误
我的.wsgi文件包含以下内容(不确定这是否对此问题很重要):
activate_this = "/home/account/env/bin/activate_this.py"
execfile(activate_this,dict(__file__=activate_this))
import os
import sys
path = '/home/account/env/lib/python3.3/site-packages'
if path not in sys.path:
sys.path.append(path)
from pyramid.paster import get_app
application = get_app('/home/account/env/myprojectname/production.ini', 'main')
答案 0 :(得分:5)
使用Michael的上述建议,我能够解决他的问题。我甚至不需要手动安装任何包。一切正常后,如果我在setup.py文件中添加了一个需求(在创建金字塔项目时创建)并运行了pip install -e。一切都安装得很完美。这个问题是我安装东西的原因造成的。这是我的最后一个过程,以防任何其他新手金字塔:
创建了一个虚拟环境
virtualenv-3.3 env
激活环境
source env/bin/activate
已移至环境目录
cd env
已安装的金字塔
pip install pyramid
创建了一个项目
./bin/pcreate -s starter myprojectname
已移至我的项目目录
cd megaproject
Ran安装
pip install -e .
使用我的env和项目设置更新了我的wsgi文件
重新加载应用程序并高兴地看到可爱的金字塔首页
答案 1 :(得分:3)
pip和setup.py develop
不应该混在一起。后者使用easy_install,在命名空间包的情况下与pip不兼容(这些是作为另一个父包的子包安装的包,例如zope.sqlalchemy只安装完整zope。*包的.sqlalchemy部分)。命名空间包将导致pip和easy_install之间出现问题。另一方面,大多数其他软件包可以使用您选择的任何系统正常工作,但最好保持一致。
要仔细检查的另一件事是你实际上正在将软件包安装到virtualenv中。您应该能够在virtualenv中打开python cli并导入包。如果你不能,那么它可能没有安装。