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

Posted

技术标签:

【中文标题】Python pip 安装失败:无效命令 egg_info【英文标题】:Python pip install fails: invalid command egg_info 【发布时间】:2012-07-10 15:00:48 【问题描述】:

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

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

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

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

点 1.0.1 ActivePython2.7

尝试使用 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 【参考方案1】:

安装distribute,egg_info自带。

应该像pip install Distribute一样简单。

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

【讨论】:

对我不起作用。我已经安装了分发,但几乎每次我尝试安装一个包时仍然得到鸡蛋信息错误 对于像@Zorpix 这样仍然遇到错误的人,您可能想检查您正在调用的 pip 版本。在 Ubuntu 上,我发现我有一个仍在调用的发行版打包版本。 为了使新版本的 setuptools 正常工作,您可能还需要手动卸载或删除 /usr/local/lib/python2.7/dist-packages/distribute-* 如果您在删除分发后仍有问题或 pip 无法正确升级 setuptools,请尝试 easy_install -U setuptools 这对我有用。 奇怪的是,这修复了所有安装的错误 except pip install -U pip.【参考方案2】:

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

[sudo] pip install --upgrade setuptools

【讨论】:

出于某种原因,我不得不运行两次(在我的虚拟环境中,我分发了 0.6.49 和 setuptools 0.6c11),然后我可以毫无问题地安装最新版本的 pip。 @glarrain 它发生在我身上!感谢您的提醒!第一次卸载distribute 0.7,第二次卸载setuptools 0.6c11【参考方案3】:

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

【讨论】:

请注意,对于典型的 Python 安装,这必须在 Windows 上以管理员模式完成。否则,很容易忽略 Distribute 的安装失败。【参考方案4】:

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

sudo pip install --upgrade setuptools

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

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

sudo easy_install -U setuptools

【讨论】:

【参考方案5】:

以上方法对我在Ubuntu 12.04 LTS(精确穿山甲)上都不起作用,这就是我最终修复它的方法:

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

$ sudo python ez_setup.py

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

【讨论】:

【参考方案6】:

当您尝试安装 pycurl 时可能会出现此错误。

在这种情况下你应该这样做

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

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

【讨论】:

【参考方案7】:

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

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

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

使用 yum 安装 python-pip 软件包会带来 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 没有一次性将我们直接带到新版本,但这就是正在发生的事情,希望它能帮助其他人看到这一点并知道你不会发疯。

【讨论】:

【参考方案8】:

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

$ which easy_install /usr/bin/easy_install

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

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

【讨论】:

【参考方案9】:

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

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

【讨论】:

这为我解决了这个问题。原来我安装了一个旧版本的分发,并且安装了一个更旧版本的 setuptools,并且比我的系统打包程序安装的新 setuptools 更受欢迎......卸载 setuptools 和分发,然后使用我的系统打包程序重新安装 setuptools为我解决了这个问题。【参考方案10】:

我知道这是一个较老的问题,但这里是我用来让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 解决方案

已安装 https://www.microsoft.com/en-us/download/details.aspx?id=44266(适用于 Python 2.7 的 Microsoft Visual C++ 编译器)

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

尝试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 选项时安装了一些“常规”安装中缺少的依赖项。今晚下班后我会在有更多细节时更新。

【讨论】:

【参考方案11】:

pip install -U setuptoolseasy_install 将 egg-info 放在错误的目录中。

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

【讨论】:

【参考方案12】:

尝试以下命令:

pip install setuptools==28.8.0

【讨论】:

【参考方案13】:

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

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

【讨论】:

【参考方案14】:

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

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

【讨论】:

【参考方案15】:

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

然后我在运行pip3 install cairosvg之前尝试了pip install --upgrade pippip install --upgrade setuptools,但我仍然收到此错误。

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

所以,我进一步检查了错误消息,发现我在安装 cairocffi 时遇到了错误。然后我在安装 cairosvg 之前安装了某个版本的 cairocffi (refer to this answer)。这就是我解决问题的方法。

【讨论】:

以上是关于Python pip 安装失败:无效命令 egg_info的主要内容,如果未能解决你的问题,请参考以下文章

为啥安装本地egg仓库时pip会失败?

InstallationError:命令“python setup.py egg_info”失败,错误代码为1 / tmp / pip-build-Jr1szu / Django /

Jupyter 安装返回“python setup.py egg_info”失败,错误代码为 1

命令“python setup.py egg_info”在 /tmp/pip-install-jsegcbha/mysqlclient/ 中失败,错误代码为 1

“pip install models”-“python setup.py egg_info”失败,错误代码为 1

ERROR:命令错误,退出状态1:python setup.py egg_info检查日志以获取完整的命令输出。在安装pip时安装keplergl