我发现最近当我尝试使用 pip 安装 Python 软件包时,我经常收到以下错误。
我在网上找到了一个参考,必须使用下载目录中的“python2 setup.py install”,并且确实发现如果我手动查找并下载包(来自pypi),这将起作用。
但是,我不知道 pip 将包下载到哪里,和/或为什么以这种方式失败。
我尝试进行 pip 升级,但它也以类似的方式失败,出现一堆“未知分发选项”错误(entry_points、zip_safe、test_suite、tests_require)!
点 1.0.1
活动Python 2.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
安装
egg_info
附带的 distribute。
应该像
pip install Distribute
一样简单。
从 0.7 版开始,Distribute 已合并到 Setuptools。如果您使用的版本 <=0.6,请使用 pip install --upgrade setuptools
或 easy_install -U setuptools
升级。
由于分发已合并回 setuptools,现在建议安装/升级 setuptools:
[sudo] pip install --upgrade setuptools
请记住,如果您已经安装了它,您可能必须执行 pip install --upgrade Distribute
,并且您的 pip
在某些系统上可能被称为 Python2 的 pip2
(它在我的系统上)。
我遇到了这个问题,以及 OS X v10.9(小牛队)上的 Brewed Python 的其他一些问题。
sudo pip install --upgrade setuptools
对我不起作用,我认为我的 setuptools/distribute 设置很糟糕。
我终于通过运行让它工作了
sudo easy_install -U setuptools
在 Ubuntu 12.04 LTS (Precise Pangolin) 上,以上方法都不适用于我,这就是我最终修复它的方法:
从 download setuptools 下载 ez_setup.py(请参阅“安装说明”部分),然后:
$ sudo python ez_setup.py
我希望它可以节省一些时间。
当您尝试安装 pycurl
时,可能会发生此错误。
在这种情况下,你应该做
sudo apt-get install libcurl4-gnutls-dev librtmp-dev
(在这里创建:https://gist.github.com/lxneng/1031014)
在 CentOS 6.5 上,全新安装的简短回答是:
yum -y install python-pip pip install -U pip pip install -U setuptools pip install -U setuptools
您没有看到 double,您必须运行 setuptools upgrade 两次。长答案如下:
使用 yum 安装 python-pip
软件包会带来 python-setuptools
作为依赖项。这是一个相当旧的版本,因此它实际上是在安装 distribute (0.6.10)
。安装包管理器后,我们通常希望对其进行更新,因此我们执行 pip install -U pip
。对我来说,当前版本的 pip 是 1.5.6。
现在我们去更新 setuptools,这个版本的 pip 足够聪明,知道它应该首先删除旧版本的分发。它会执行此操作,但随后会安装 setuptools (0.6c11)
,而不是安装最新版本的 setuptools。
在这一点上,由于这个非常旧的 setuptools 版本,各种事情都被破坏了,但我们实际上已经完成了一半。如果我们现在再次运行完全相同的命令 pip install -U setuptools
,则会删除旧版本的 setuptools,并安装 5.5.1 版。我不知道为什么 pip 没有一次将我们直接带到新版本,但这就是正在发生的事情,希望它会帮助其他人看到这一点,并且知道你不会发疯。
看起来默认的 easy_install 在其当前位置已损坏:
$ which easy_install /usr/bin/easy_install
克服这个问题的一种方法是在站点包中使用 easy_install。例如:
$ sudo python /Library/Python/2.7/site-packages/easy_install.py boto
我面临同样的问题,我尝试了上述所有答案。但不幸的是,以上都没有奏效。
作为说明,我最终通过 pip uninstall distribute
解决了这个问题。
我知道这是一个较老的问题,但这里是我用来让 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:安装脚本退出并出现错误:需要 Microsoft Visual C++ 9.0(无法找到 vcvarsall.bat)。从 http://aka.ms/vcpython27 命令 "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" 失败,错误代码为 1 c:\users\Frito\appdata\local\temp\pip-build-sesxxu\cassandra-driver
为 Python 2.7 安装了 Microsoft Visual C++ 编译器
成功执行 pip install --pre cassandra-driver
成功执行 pip uninstall cassandra-driver
成功执行 pip install cassandra-driver
重申一下,我不确定为什么会这样。现在我的两个主要结论是,要么需要 C++ 编译器,要么在第一次运行 --pre
选项时安装了一些“常规”安装中缺少的依赖项。当我有更多细节时,我会在今晚下班后更新。
pip install -U setuptools
和 easy_install
将 egg-info 放入了错误的目录。
然后我重新安装了 apt-get install python-dev
。之后让我安装我想要的驱动程序
尝试以下命令:
pip install setuptools==28.8.0
我只是将 Liquidki 的答案转换为 Ubuntu 命令。在基于 Ubuntu 的系统上它可以工作!:
sudo apt -y install python-pip
pip install -U pip
sudo pip install -U setuptools
对我来说,将 pip 从 8.1.1 升级到 9.0.1 解决了这个问题。
您可以运行 sudo -H pip2 install --upgrade pip
之类的命令来升级您的 pip 版本。
当我想在虚拟环境中使用命令 pip install cairosvg
安装 cairosvg 时,我也遇到了类似的错误消息“命令 'python setup.py egg_info' failed with error code 1”。
然后我在运行 pip3 install cairosvg
之前尝试了 pip install --upgrade pip
和 pip install --upgrade setuptools
,但我仍然收到此错误。
我可以在安装命令前使用 sudo 消除此错误:sudo pip install cairosvg
。但请注意,带有 sudo 的命令将为系统 python 而不是虚拟环境安装包。
因此,我进一步检查了错误消息,发现我在安装 cairocffi 时收到错误消息。然后我在安装 cairosvg 之前安装了某个版本的 cairocffi (refer to this answer)。这就是我解决问题的方法。
/usr/local/lib/python2.7/dist-packages/distribute-*
easy_install -U setuptools
这对我有用。pip install -U pip
。