没有名为pkg_resources的模块

Deadly 提交于 2020-02-27 21:02:28

我正在将一个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一起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不在路径上的任何想法?


#1楼

2018年7月更新

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

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

此问题可能高度依赖于您的操作系统和开发环境。 如果以上内容不适合您,请参阅下面的遗产/其他答案。

说明

此错误消息是由缺少/损坏的Python setuptools包引起的。 Per Matt M.的注释和setuptools问题#581下面提到的引导脚本不再是推荐的安装方法。

引导脚本说明将保留在下面,以防它对任何人都有帮助。

遗产答案

我在尝试使用pip时遇到了同样的ImportError 。 不知何故,我的Python环境中删除了setuptools包。

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

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

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

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

可能有sudo前置。)

如果你有任何版本的distribute版或任何低于0.6的setuptools ,你必须先卸载它。*

有关详细信息,请参阅安装说明


*如果您已经有工作distribute ,将其升级到“兼容包装”,将您切换到setuptools更容易。 但如果事情已经破裂,不要试试。


#2楼

当我将virtualenv激活为与创建它的人不同的用户时,我遇到了这个问题。 这似乎是一个许可问题。 当我尝试@cwc的答案并在输出中看到这个时,我发现了这个:

Installing easy_install script to /path/env/bin
error: /path/env/bin/easy_install: Permission denied

切换回创建virtualenv的用户,然后运行原始pip install命令没有问题。 希望这可以帮助!


#3楼

我今天也遇到了这个问题。 我只在虚拟环境中遇到问题。

我的解决方案是停用虚拟环境,删除然后用pip卸载virtualenv并重新安装它。 之后我为我的项目创建了一个新的虚拟环境,然后pip在虚拟环境中和正常环境一样工作正常。


#4楼

它也发生在我身上。 我认为如果在virtualenv使用setuptools时,requirements.txt包含“distribute”条目,则会出现问题。 Pip将尝试修补setuptools以便为分发腾出空间,但不幸的是它会在一半时间内失败。

简单的解决方案是删除当前的virtualenv,然后使用--distribute参数创建一个新的virtualenv。

使用virtualenvwrapper的一个例子:

$ deactivate
$ rmvirtualenv yourenv
$ mkvirtualenv yourenv --distribute
$ workon yourenv
$ pip install -r requirements.txt

#5楼

尝试在ubuntu 13.10上安装rhodecode到virtualenv时,我看到了这个错误。 对我来说,解决方案是运行

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

在我运行easy_install rhodecode之前。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!