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


当前回答

您可以使用该命令 Sudo apt-get install—重新安装python3-pkg-resources 如果您正在使用python3,那么我就是这种情况。

其他回答

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

sudo yum install python-devel

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

在Opensuse 42.1中,以下修复了此问题:

zypper in python-Pygments

简单的解决方法是使用conda来升级setuptools或整个环境。(windows用户专用)

conda upgrade -c anaconda setuptools

如果setuptools被移除,需要重新安装setuptools。

conda install -c anaconda setuptools

如果这些方法都不起作用,您可以升级conda环境。但我不建议你重新安装和卸载一些包,因为这将加剧情况。

对我来说,原来是站点包的权限问题。因为这只是我的开发环境,我提高了权限,一切都恢复正常了:

sudo chmod -R a+rwx /path/to/my/venv/lib/python2.7/site-packages/

只需重新安装setuptools:

$ sudo wget https://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz#md5=7df2a529a074f613b509fb44feefefe74e
$ tar -zxvf setuptools-0.6c11.tar.gz
$ cd setuptools-0.6c11/
$ sudo python setup.py build
$ sudo python setup.py install
$ sudo pip install --upgrade setuptools

那么一切都会好起来的。