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


当前回答

我通过这样做修复了virtualenv的错误:

复制pkg_resources.py from

/ Library /蟒蛇/ 2.7 / site-packages / setuptools

to

/图书馆/ Python / 2.7 /网站/

这可能是一个廉价的变通办法,但对我来说很管用。

.

如果安装工具不存在,您可以尝试通过输入virtualenv——system-site-packages /DESTINATION DIRECTORY来安装system-site-packages,将最后一部分更改为您想要安装的目录。Pkg_rousources.py将在lib/python2.7/site-packages目录下

其他回答

对我来说,这个错误是因为我有一个名为“site”的子目录!我不知道这是不是pip bug,但我开始说:

/一些/目录/要求.txt /一些/目录/站点/

PIP install -r requirements.txt不能工作,给我上面的错误!

将子文件夹从“site”重命名为“src”修复了这个问题!也许皮普正在寻找“站点包”?疯了。

当我试图遵循OSX指南时,我偶然发现了这个答案。对我有用的是,在运行python get-pip之后,我还必须easy_install pip。这解决了根本无法运行pip的问题。我确实安装了一堆旧的macport软件。这可能有些矛盾。

在windows上,我安装了从www.lfd.uci.edu/~gohlke/pythonlibs/下载的pip,然后遇到了这个问题。

所以我应该先安装setuptools(easy_install)。

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

我在诗歌环境中遇到了这个错误。

我采取的解决方法是:

添加setuptools作为开发依赖项

poetry add --dev setuptools

在诗词环境中安装setuptools

poetry run pip install setuptools