我发现最近经常在我尝试使用pip安装Python软件包时,我得到下面的错误 .
我在网上找到了一个必须使用下载目录中的“python2 setup.py install”的参考资料,并且确实发现如果我手动查找并下载软件包(来自pypi),这将会有效 .
但是,我不知道pip在哪里下载包,和/或为什么它以这种方式失败 .
我尝试进行点升级,但它也以类似的方式失败,出现了一堆“未知的分发选项”错误(entry_points,zip_safe,test_suite,tests_require)!
-
pip 1.0.1
-
ActivePython 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'
16 回答
安装distribute,它与egg_info一起提供 .
应该像pip install Distribute一样简单 .
自0.7版起,Distribute已合并到Setuptools中 . 如果您使用的版本<= 0.6,请使用
pip install --upgrade setuptools
或easy_install -U setuptools
进行升级 .由于分发已合并回setuptools,现在建议安装/升级setuptools:
请记住,如果你已经安装了它,你可能需要做
pip install --upgrade Distribute
,并且在某些系统上你的pip
可能被称为pip2
(对于我的) .我有这个问题,以及OS X v10.9(Mavericks)上Brewed Python的其他一些问题 .
不适合我,我认为我的setuptools /分配设置是拙劣的 .
我终于通过运行得到了它
以上都没有在Ubuntu 12.04 LTS(精确穿山甲)上为我工作,这就是我最终如何修复它:
从download setuptools下载 ez_setup.py (参见"Installation Instructions"部分)然后:
我希望能节省一些时间 .
当您尝试安装
pycurl
时,可能会发生此错误 .在这种情况下你应该这样做
(成立于这里: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
您没有看到双倍,您必须运行两次setuptools升级 . 答案如下:
使用yum安装
python-pip
软件包会带来python-setuptools
作为依赖项 . 它's a pretty old version and hence it'实际安装了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 . 我不会直接把我们带到新版本,但这是_1168209不会发疯的 .看起来默认的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
解决了这个问题 .我知道这是一个较旧的问题,但以下是我在Windows 7 / Python2上实际安装
cassandra-driver
的步骤 . 我家里有windows 10 / Python3,今晚我将对此进行测试 . 我已经确认这也可以在Windows 10上同时使用Python 2和3 .Problem
TL;DR Solution
Solution (我喜欢有人解释为什么这样有效)
尝试
pip install cassandra-driver
并收到以上错误消息尝试
pip install --pre cassandra-driver
并收到以下错误命令“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 --recordc:\ users \ Frito \ appdata \ local \ temp \ pip-ujsxsk-record \ install-record.txt --single-version-external-managed --compile --install-headers c:\ users \ Frito \ .virtualenvs \ symdash \ include \ site \ python2.7 \ cassandra-driver“在c:\ users \ Frito \ appdata \ local \ temp \ pip-build-sesxxu \ cassandra-driver中失败并显示错误代码1
已安装
Microsoft Visual C++ Compiler for Python 2.7
已成功执行
pip install --pre cassandra-driver
已成功执行
pip uninstall cassandra-driver
已成功执行
pip install cassandra-driver
重申一下,我不确定为什么会这样 . 现在我的两个主要结论是C编译器是必需的,或者在第一次运行
--pre
选项时安装了'regular' install中缺少的一些依赖项 . 我有更多详细信息,今晚下班后我会更新 .pip install -U setuptools
和easy_install
将egg-info放在错误的目录中 .然后我重新安装
apt-get install python-dev
. 让我在那之后安装我想要的驱动程序我只是将liquidki的答案转换为Ubuntu命令 . 在基于Ubuntu的系统上,它可以工作!:
对我来说,将pip从8.1.1升级到9.0.1解决了这个问题 .
您可以运行类似
sudo -H pip2 install --upgrade pip
的内容来升级您的pip版本 .尝试以下命令:
当我想在虚拟环境中使用命令
pip install cairosvg
安装 cairosvg 时,我也遇到类似的错误消息"Command '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) . 这就是我解决问题的方法 .
sudo apt-get install apache2-dev
解决了我的问题