如何在不获取pkg_resources.DistributionNotFound的情况下为金字塔安装新包:一旦创建了项目

Kat*_* B. 6 python virtualenv setup.py pyramid

我已经安装了金字塔并成功创建了一个项目,但是当我尝试向setup.py要求添加新包时,他们总是给我一个pkg_resources.DistributionNotFound错误.

这些软件包已经安装,只有在我运行后尝试安装新软件包时才会发生这种情况../bin/python3.3 setup.py develop它是什么软件包并不重要.

我解决(不是真的)的唯一方法是在创建项目并运行setup.py develop之前设置一个新的虚拟环境并安装软件包.

显然我做错了什么.除了pip安装包之外还有什么需要做的吗?这是一种路径问题吗?我是新手,所以你的帮助会非常感激!

*添加我的安装过程,以防任何人碰巧看到它有问题. 还包括我的wsgi文件.

创造了一个virtualenv easy_install-3.3 env

激活了virtualenv source env/bin/activate

安装金字塔 cd env ./bin/easy_install-3.3 pyramid

创建了一个项目 ./bin/pcreate -s starter myprojectname

跑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')

Kat*_* B. 5

使用Michael的上述建议,我能够解决他的问题.我甚至不需要手动安装任何包.一切正常后,如果我在setup.py文件中添加了一个需求(在创建金字塔项目时创建)并运行了pip install -e.一切都安装得很完美.这个问题是我安装东西的原因造成的.这是我的最后一个过程,以防止任何其他新手金字塔:

  1. 创建了一个虚拟环境 virtualenv-3.3 env

  2. 激活了环境 source env/bin/activate

  3. 已移至环境目录 cd env

  4. 安装金字塔 pip install pyramid

  5. 创建了一个项目 ./bin/pcreate -s starter myprojectname

  6. 移动到我的项目目录 cd megaproject

  7. 跑安装 pip install -e .

  8. 用我的env和项目设置更新了我的wsgi文件

  9. 重新加载应用程序,并高兴地看到可爱的金字塔首页


Mic*_*kel 3

pip 且setup.py develop不应混合。后者使用 easy_install,在命名空间包的情况下与 pip 不兼容(这些包作为另一个父包的子包安装,例如 zope.sqlalchemy 仅安装完整 zope.* 包的 .sqlalchemy 部分)。命名空间包导致 pip 和 easy_install 之间出现问题。另一方面,大多数其他软件包都可以与您选择的任何系统一起正常工作,但最好保持一致。

另一件需要仔细检查的事情是您实际上正在将软件包安装到您的 virtualenv 中。您应该能够在 virtualenv 中打开 python cli 并导入包。如果不能,则可能没有安装。