我正在将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不在路径上有任何想法吗?


当前回答

我之前有这个错误,最高评级的答案给了我一个错误,试图下载ez_setup.py文件。我找到了另一个来源,所以你可以运行命令:

curl http://peak.telecommunity.com/dist/ez_setup.py | python

我发现我还必须使用sudo来让它工作,所以你可能需要运行:

sudo curl http://peak.telecommunity.com/dist/ez_setup.py | sudo python

我还创建了另一个可以下载脚本的位置:

https://gist.github.com/ajtrichards/42e73562a89edb1039f3

其他回答

我使用CentOS 6.7,我的python刚刚从2.6.6升级到2.7.11,在尝试了这么多不同的答案后,最后下面的一个完成了工作:

sudo yum install python-devel

希望能帮助到有同样处境的人。

我在安装最新的Python 3.10.4版本后遇到了这个问题。 不知怎么的,setuptools包和pip被删除了。

我使用以下命令来解决这个问题: (窗口)

py -m ensurepip --default-pip

就我而言,我做到了:

pip install -U poetry

在Windows上,使用python 3.7,这对我来说是有效的:

pip install --upgrade setuptools --user

——user在你的主目录下安装包,不需要管理员权限。

当我以不同于创建它的用户的身份激活virtualenv时,我遇到了这个问题。似乎是权限问题。当我尝试@cwc的答案并在输出中看到这一点时,我发现了这一点:

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

切换回创建virtualenv的用户,然后运行原来的pip install命令,没有任何问题。希望这能有所帮助!