没有名为pkg_resources的模块

2024-04-24 08:43:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在将Django应用程序部署到开发服务器,并在运行pip install -r requirements.txt时遇到此错误:

Traceback (most recent call last):
  File "/var/www/mydir/virtualenvs/dev/bin/pip", line 5, in <module>
    from pkg_resources import load_entry_point
ImportError: No module named pkg_resources

pkg_resources似乎与setuptools一起分布。最初我认为这可能不会安装到virtualenv中的Python中,因此我使用以下命令将setuptools 2.6(与Python相同的版本)安装到virtualenv中的Python站点包中:

sh setuptools-0.6c11-py2.6.egg --install-dir /var/www/mydir/virtualenvs/dev/lib/python2.6/site-packages

编辑:这只在virtualenv中发生。如果我在virtualenv之外打开一个控制台,那么会出现pkg_resources,但仍然会出现相同的错误。

关于为什么pkg_resources不在这条路上有什么想法吗?


Tags: installpipdjangodev应用程序virtualenvvarwww
3条回答

2018年7月更新

大多数人现在应该使用pip install setuptools(可能与sudo一起使用)。

有些可能需要(重新)通过包管理器安装python-setuptools包(apt-get installyum install,等等)。

此问题可能高度依赖于您的操作系统和开发环境。如果上面的答案对您不起作用,请参阅下面的遗留问题/其他答案。

说明

此错误消息是由丢失/损坏的Pythonsetuptools包引起的。根据Matt M.的注释和setuptools issue #581,下面提到的引导脚本不再是推荐的安装方法。

引导脚本指令将保留在下面,以防对任何人仍有帮助。

传统答案

我今天在尝试使用pip时遇到了相同的ImportError。不知怎么的,setuptools包在我的Python环境中被删除了。

要解决此问题,请运行setuptools的安装脚本:

wget https://bootstrap.pypa.io/ez_setup.py -O - | python

(或者如果您没有安装wget(例如OS X),请尝试

curl https://bootstrap.pypa.io/ez_setup.py | python

可能是在sudo之前。)

如果您有任何版本的^{},或0.6以下的setuptools,则必须先卸载它。*

有关详细信息,请参见Installation Instructions


*如果您已经有一个可以工作的distribute,那么将其升级到“兼容性包装器”将更容易切换到setuptools。但如果事情已经坏了,就不要去尝试。

我在尝试将rhodecode安装到Ubuntu13.10上的virtualenv时看到了这个错误。对我来说,解决办法是逃跑

pip install --upgrade setuptools
pip install --upgrade distribute 

在我运行easy_install rhodecode之前。

sudo apt-get install --reinstall python-pkg-resources

在德比安帮我修好了。似乎卸载了一些.deb包(在我的例子中是twisted set)打破了python用来查找包的路径

相关问题 更多 >