I find that recently often when I try to install a Python package using pip, I get the error(s) below.
I found a reference online that one has to use "python2 setup.py install" from the download directory, and indeed find that this will then work if I manually find and download the package (from pypi).
But, I don't know where pip is downloading packages to, and/or why it is failing in this manner.
I tried to do a pip upgrade, but it also failed in a similar manner, with a bunch of "Unknown distribution option" errors (entry_points, zip_safe, test_suite, tests_require)!
pip 1.0.1
ActivePython 2.7
Trying to use ActiveState's pypm fails, because they have a smaller library base, and it doesn't include these packages.
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
Install distribute, which comes with
egg_info
.
Should be as simple as
pip install Distribute
.
Distribute has been merged into Setuptools as of version 0.7. If you are using a version <=0.6, upgrade using pip install --upgrade setuptools
or easy_install -U setuptools
.
As distribute has been merged back into setuptools, it is now recommended to install/upgrade setuptools instead:
[sudo] pip install --upgrade setuptools
Bear in mind you may have to do pip install --upgrade Distribute
if you have it installed already and your pip
may be called pip2
for Python2 on some systems (it is on mine).
I had this issue, as well as some other issues with Brewed Python on OS X v10.9 (Mavericks).
sudo pip install --upgrade setuptools
didn't work for me, and I think my setuptools/distribute setup was botched.
I finally got it to work by running
sudo easy_install -U setuptools
None of the above worked for me on Ubuntu 12.04 LTS (Precise Pangolin), and here's how I fixed it in the end:
Download ez_setup.py from download setuptools (see "Installation Instructions" section) then:
$ sudo python ez_setup.py
I hope it saves someone some time.
This error can occur when you trying to install pycurl
.
In this case you should do
sudo apt-get install libcurl4-gnutls-dev librtmp-dev
(founded here: https://gist.github.com/lxneng/1031014 )
On CentOS 6.5, the short answer from a clean install is:
yum -y install python-pip pip install -U pip pip install -U setuptools pip install -U setuptools
You are not seeing double, you must run the setuptools upgrade twice. The long answer is below:
Installing the python-pip
package using yum brings python-setuptools
along as a dependency. It's a pretty old version and hence it's actually installing distribute (0.6.10)
. After installing a package manager we generally want to update it, so we do pip install -U pip
. Current version of pip for me is 1.5.6.
Now we go to update setuptools and this version of pip is smart enough to know it should remove the old version of distribute first. It does this, but then instead of installing the latest version of setuptools it installs setuptools (0.6c11)
.
At this point all kinds of things are broken due to this extremely old version of setuptools, but we're actually halfway there. If we now run the exact same command a second time, pip install -U setuptools
, the old version of setuptools is removed, and version 5.5.1 is installed. I don't know why pip doesn't take us straight to the new version in one shot, but this is what's happening and hopefully it will help others to see this and know you're not going crazy.
Looks like the default easy_install is broken in its current location:
$ which easy_install /usr/bin/easy_install
A way to overcome this is to use the easy_install in site packages. For example:
$ sudo python /Library/Python/2.7/site-packages/easy_install.py boto
I was facing the same issue and I tried all the above answers. But unfortunately, none of the above worked.
As a note, I finally solve this by pip uninstall distribute
.
I know this is an older question but here are the steps I used to get cassandra-driver
to actually install on Windows 7 / Python2. I have windows 10 / Python3 at home where I will test this tonight. I have confirmed this also works on Windows 10 with both Python 2 and 3.
Problem
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 Solution
Installed https://www.microsoft.com/en-us/download/details.aspx?id=44266 (Microsoft Visual C++ Compiler for Python 2.7)
Solution (I'd love for someone to explain why this worked)
Attempted pip install cassandra-driver and got the above error message
Attempted pip install --pre cassandra-driver and got the following error
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
Installed Microsoft Visual C++ Compiler for Python 2.7
Successfully executed pip install --pre cassandra-driver
Successfully executed pip uninstall cassandra-driver
Successfully executed pip install cassandra-driver
To reiterate, I'm not really sure why this worked. Right now my two leading conclusions are that either the C++ compiler is required or that running the --pre
option the first time installed some dependencies that were missing from the 'regular' install. I'll update tonight after work when I have more details.
pip install -U setuptools
and easy_install
was putting egg-info in the wrong directory.
Then I just reinstalled apt-get install python-dev
. Let me install the drivers I want after that
try the following command:
pip install setuptools==28.8.0
I just convert liquidki's answer into Ubuntu commands. On an Ubuntu based system it works!:
sudo apt -y install python-pip
pip install -U pip
sudo pip install -U setuptools
For me upgrading pip from 8.1.1 to 9.0.1 solved this problem.
You can run something like sudo -H pip2 install --upgrade pip
to upgrade your pip version.
I also meet a similar error message "Command 'python setup.py egg_info' failed with error code 1" when I want to install cairosvg with command pip install cairosvg
in a virtual environment.
Then I have tried both pip install --upgrade pip
and pip install --upgrade setuptools
before running pip3 install cairosvg
, but I still get this error.
I can get rid of this error with sudo in front of the installation command : sudo pip install cairosvg
. But note that the command with sudo will install the package for the system python rather than the virtual environment.
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.
Success story sharing
/usr/local/lib/python2.7/dist-packages/distribute-*
easy_install -U setuptools
This worked for me.pip install -U pip
.