210

我发现最近当我尝试使用pip安装Python包时,经常会收到以下错误。

我在网上找到了一个参考,必须使用下载目录中的“ python2 setup.py install ”,并且确实发现如果我手动查找并下载包(来自pypi),这将起作用。

但是,我不知道 pip 将包下载到哪里,和/或为什么以这种方式失败。

我尝试进行 pip 升级,但它也以类似的方式失败,出现一堆“未知分发选项”错误(entry_points、zip_safe、test_suite、tests_require)!

尝试使用 ActiveState 的 pypm 失败,因为它们的库基础较小,并且不包含这些包。

C:\test>pip install requests-oauth
Downloading/unpacking requests-oauth
  Downloading requests-oauth-0.4.1.tar.gz
  Running setup.py egg_info for package requests-oauth
    E:\Plang\ActivePython\lib\distutils\dist.py:267: UserWarning: Unknown distribution option: 'zip_safe'
      warnings.warn(msg)
    E:\Plang\ActivePython\lib\distutils\dist.py:267: UserWarning: Unknown distribution option: 'install_requires'
      warnings.warn(msg)
    usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
       or: -c --help [cmd1 cmd2 ...]
       or: -c --help-commands
       or: -c cmd --help

    error: invalid command 'egg_info'
    Complete output from command python setup.py egg_info:
    E:\Plang\ActivePython\lib\distutils\dist.py:267: UserWarning: Unknown distribution option: 'zip_safe'
  warnings.warn(msg)

E:\Plang\ActivePython\lib\distutils\dist.py:267: UserWarning: Unknown distribution option: 'install_requires'
  warnings.warn(msg)

usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
   or: -c --help [cmd1 cmd2 ...]
   or: -c --help-commands
   or: -c cmd --help

error: invalid command 'egg_info'
4

15 回答 15

321

安装附带的分发egg_info

应该很简单pip install Distribute

从 0.7 版开始,Distribute 已合并到 Setuptools。如果您使用的版本 <=0.6,请使用pip install --upgrade setuptools或升级easy_install -U setuptools

于 2012-07-11T05:01:16.170 回答
58

由于分发已合并回 setuptools,现在建议安装/升级 setuptools:

[sudo] pip install --upgrade setuptools
于 2013-08-06T13:11:08.867 回答
22

请记住,pip install --upgrade Distribute如果您已经安装了它,并且您pip可能需要pip2在某些系统上使用 Python2(它在我的系统上),您可能必须这样做。

于 2013-07-18T08:18:28.003 回答
13

我遇到了这个问题,以及OS X v10.9 (Mavericks) 上的 Brewed Python 的其他一些问题。

sudo pip install --upgrade setuptools

对我不起作用,我认为我的 setuptools/distribute 设置很糟糕。

我终于通过运行让它工作了

sudo easy_install -U setuptools
于 2014-01-17T00:36:37.253 回答
11

Ubuntu 12.04 LTS (Precise Pangolin) 上,以上方法都不适用于我,这就是我最终修复它的方法:

从下载setuptools下载 ez_setup.py(参见“安装说明”部分),然后:

$ sudo python ez_setup.py

我希望它可以节省一些时间。

于 2014-05-14T14:25:46.760 回答
9

当您尝试安装pycurl.

在这种情况下,你应该做

sudo apt-get install libcurl4-gnutls-dev librtmp-dev

(创建于此处:https ://gist.github.com/lxneng/1031014 )

于 2015-06-02T07:31:53.660 回答
8

在 CentOS 6.5 上,全新安装的简短回答是:

yum -y install python-pip pip install -U pip pip install -U setuptools pip install -U setuptools

您没有看到 double,您必须运行 setuptools upgrade 两次。长答案如下:

python-pip使用 yum安装软件包会带来python-setuptools依赖项。这是一个相当旧的版本,因此它实际上是在安装distribute (0.6.10). 安装包管理器后,我们通常想要更新它,所以我们这样做了pip install -U pip. 对我来说,当前版本的 pip 是 1.5.6。

现在我们去更新 setuptools,这个版本的 pip 足够聪明,知道它应该首先删除旧版本的分发。它会这样做,但它不会安装最新版本的 setuptools 而是安装setuptools (0.6c11).

在这一点上,由于这个非常旧的 setuptools 版本,各种事情都被破坏了,但我们实际上已经完成了一半。如果我们现在再次运行完全相同的命令,pip install -U setuptools则会删除旧版本的 setuptools,并安装 5.5.1 版本。我不知道为什么 pip 没有一次将我们直接带到新版本,但这就是正在发生的事情,希望它会帮助其他人看到这一点,并且知道你不会发疯。

于 2014-08-13T13:54:48.190 回答
6

看起来默认的 easy_install 在其当前位置已损坏:

$ which easy_install /usr/bin/easy_install

克服这个问题的一种方法是在站点包中使用 easy_install。例如:

$ sudo python /Library/Python/2.7/site-packages/easy_install.py boto

于 2014-03-18T12:52:39.133 回答
6

我面临同样的问题,我尝试了上述所有答案。但不幸的是,以上都没有奏效。

作为一个说明,我终于解决了这个问题pip uninstall distribute

于 2015-12-03T12:43:52.787 回答
5

我知道这是一个较老的问题,但这里是我用来cassandra-driver在 Windows 7 / Python2 上实际安装的步骤。我家里有 Windows 10 / Python3,今晚我将在其中进行测试。我已经确认这也适用于带有 Python 2 和 3 的 Windows 10。

问题

Command "python setup.py egg_info" failed with error code 1 in c:\users\Frito\appdata\local\temp\pip-build-7dgmdc\cassandra-driver

TL;DR 解决方案

解决方案(我很想有人解释为什么会这样)

  • 尝试pip install cassandra-driver并收到上述错误消息
  • 尝试pip install --pre cassandra-driver并得到以下错误
distutils.errors.DistutilsError: Setup script exited with error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat).
Get it from http://aka.ms/vcpython27

Command "c:\users\Frito\.virtualenvs\symdash\scripts\python.exe -u -c "import setuptools, tokenize;__file__='c:\\users\\Frito\\appdata\\local\\temp\\pip-build-sesxxu\\cassandra-driver\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record  c:\users\Frito\appdata\local\temp\pip-ujsxsk-record\install-record.txt --single-version-externally-managed --compile --install-headers c:\users\Frito\.virtualenvs\symdash\include\site\python2.7\cassandra-driver"  failed with error code 1 in  c:\users\Frito\appdata\local\temp\pip-build-sesxxu\cassandra-driver
  • 已安装Microsoft Visual C++ Compiler for Python 2.7
  • 成功执行pip install --pre cassandra-driver
  • 成功执行pip uninstall cassandra-driver
  • 成功执行pip install cassandra-driver

重申一下,我不确定为什么会这样。现在我的两个主要结论是,要么需要 C++ 编译器,要么在一次运行该--pre选项时安装了一些“常规”安装中缺少的依赖项。当我有更多细节时,我会在今晚下班后更新。

于 2016-02-24T13:48:44.290 回答
1

pip install -U setuptools并将easy_installegg-info 放在错误的目录中。

然后我就重新安装了apt-get install python-dev。之后让我安装我想要的驱动程序

于 2016-01-27T15:29:01.350 回答
1

尝试以下命令:

pip install setuptools==28.8.0
于 2018-07-12T23:02:16.907 回答
0

我只是将 Liquidki 的答案转换为 Ubuntu 命令。在基于 Ubuntu 的系统上它可以工作!:

sudo apt -y install python-pip
pip install -U pip
sudo pip install -U setuptools
于 2016-11-28T17:09:43.297 回答
0

对我来说,将 pip 从 8.1.1 升级到 9.0.1 解决了这个问题。

您可以运行类似sudo -H pip2 install --upgrade pip升级 pip 版本的操作。

于 2017-10-24T20:38:44.803 回答
0

当我想在虚拟环境中使用命令安装cairosvg时,我也会遇到类似的错误消息“命令 'python setup.py egg_info' failed with error code 1”。pip install cairosvg

然后我在运行之前pip install --upgrade pip和之前都试过了,但我仍然得到这个错误。pip install --upgrade setuptoolspip3 install cairosvg

我可以在安装命令前使用sudo摆脱这个错误: sudo pip install cairosvg。但请注意,带有sudo的命令将为系统 python 而不是虚拟环境安装包。

So, I further check the error message and find that I get the error while installing the cairocffi. Then I install a certain version of cairocffi (refer to this answer) before install cairosvg. That is how I solve my problem.

于 2018-10-23T14:01:34.840 回答