Python pip install fails: invalid command egg_info

Question:

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)!

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:PlangActivePythonlibdistutilsdist.py:267: UserWarning: Unknown distribution option: 'zip_safe'
      warnings.warn(msg)
    E:PlangActivePythonlibdistutilsdist.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:PlangActivePythonlibdistutilsdist.py:267: UserWarning: Unknown distribution option: 'zip_safe'
  warnings.warn(msg)

E:PlangActivePythonlibdistutilsdist.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'
Asked By: guthrie

||

Answers:

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.

Answered By: Randall Ma

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).

Answered By: Naypam

As distribute has been merged back into setuptools, it is now recommended to install/upgrade setuptools instead:

[sudo] pip install --upgrade setuptools
Answered By: Gringo Suave

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
Answered By: Ian weisberger

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

Answered By: johnpaulhayes

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.

Answered By: user3637041

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.

Answered By: liquidki

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 )

Answered By: Sergei Panfilov

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.

Answered By: Yin Song

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

Answered By: shanwar

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:usersFritoappdatalocaltemppip-build-7dgmdccassandra-driver

TL;DR Solution

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:usersFrito.virtualenvssymdashscriptspython.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('rn', 'n'), __file__, 'exec'))" install --record  c:usersFritoappdatalocaltemppip-ujsxsk-recordinstall-record.txt --single-version-externally-managed --compile --install-headers c:usersFrito.virtualenvssymdashincludesitepython2.7cassandra-driver"  failed with error code 1 in  c:usersFritoappdatalocaltemppip-build-sesxxucassandra-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.

Answered By: Frito

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
Answered By: efkan

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.

Answered By: Qin Heyang

try the following command:

pip install setuptools==28.8.0
Answered By: vp9031

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.

Answered By: liushan CHEN
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.