Python pip安装失败:无效的命令egg_info


205

我最近经常尝试使用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'

对我来说,它可以安装python-dev
lmaooooo,2016年

Answers:


313

安装分发附带的egg_info

应该很简单pip install Distribute

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


79
对我不起作用。我已经安装了发行版,但是几乎每次我尝试安装软件包时,仍然会收到egg信息错误
Riot Goes Woof 2013年

2
对于像@Zorpix这样仍然出现错误的用户,您可能需要检查您呼叫的pip版本。在Ubuntu上,我发现我的发行版打包版本仍在被调用。
James Snyder

1
为使新版本的setuptools正常工作,您可能还必须手动卸载或删除发行版/usr/local/lib/python2.7/dist-packages/distribute-*
Michael

12
如果您在删除分发版后仍然遇到问题,或者pip无法正确升级setuptools,请尝试“ easy_install -U setuptools这对我有用” 。
kissgyorgy 2014年

5
奇怪的是,这修复了除以外的 所有安装的错误pip install -U pip
塞林2014年

58

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

[sudo] pip install --upgrade setuptools

7
由于某种原因,我不得不运行两次(在我的虚拟环境中,我已经分发了0.6.49和setuptools 0.6c11),然后我可以毫无问题地安装最新版本的pip。
glarrain

3
@glarrain它发生在我身上!感谢您的注意!第一遍卸载发行版0.7,第二遍卸载安装工具0.6c11
空袭

22

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


1
注意,对于典型的Python安装,必须在Windows上的管理员模式下完成。否则,很容易忽略Distribute的安装失败。
史蒂文·布兰

13

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

sudo pip install --upgrade setuptools

不适用于我,我认为我的setuptools / distribute安装程序很烂。

我终于通过运行使它起作用

sudo easy_install -U setuptools

11

上面的这些都不适合我在Ubuntu 12.04 LTS(精确的穿山甲)上使用,下面是我最终解决的方法:

下载ez_setup.py下载setuptools的(请参阅“安装说明”部分),则:

$ sudo python ez_setup.py

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



8

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

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

您不会看到两倍,必须运行两次setuptools升级。长答案如下:

python-pip使用yum 安装软件包会带来python-setuptools依赖性。这是一个很旧的版本,因此实际上是在安装distribute (0.6.10)。安装软件包管理器后,我们通常要对其进行更新,因此我们pip install -U pip。对我来说,当前的pip版本是1.5.6。

现在我们去更新setuptools,这个pip版本很聪明,知道它应该先删除旧版本的distribution。它会执行此操作,但是会安装而不是安装最新版本的setuptools setuptools (0.6c11)

此时,由于setuptools的版本太旧,各种情况都被破坏了,但实际上我们已经到了一半。如果现在第二次运行完全相同的命令pip install -U setuptools,则将删除旧版本的setuptools,并安装5.5.1版。我不知道为什么pip不能一口气将我们带到新版本,但这是正在发生的事情,希望它将帮助其他人看到这一点并知道您不会发疯。


6

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

$ which easy_install /usr/bin/easy_install

解决此问题的一种方法是在站点包中使用easy_install。例如:

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


6

我遇到了同样的问题,并且尝试了以上所有答案。但不幸的是,以上方法均无效。

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


3
这为我解决了这个问题。原来,我安装了旧版的发行版,并且安装了甚至更高版本的setuptools,并且比我的系统打包程序所安装的较新的setuptools更受欢迎。为我解决了这个问题。
Dominic LoBue 2016年

5

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

问题

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在第一时间安装一些依赖人失踪,从选项“正规军”安装。当我有更多详细信息时,我将在今晚下班后更新。


1

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

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


1

尝试以下命令:

pip install setuptools==28.8.0

0

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

sudo apt -y install python-pip
pip install -U pip
sudo pip install -U setuptools

0

对我来说,将点数从8.1.1升级到9.0.1解决了此问题。

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


0

当我想在虚拟环境中使用命令安装cairosvg时,我也遇到类似的错误消息“命令'python setup.py egg_info'失败,错误代码为1” pip install cairosvg

然后,我曾经尝试都pip install --upgrade pippip install --upgrade setuptools运行前pip3 install cairosvg,但我仍然得到这个错误。

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

因此,我进一步检查了错误消息,并发现在安装cairocffi时收到错误消息。然后安装特定版本的cairocffi(请参阅此答案在安装cairosvg之前,先安装)。这就是我解决问题的方式。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.