Search code examples
python-2.7pipvirtualenvlinux-mint

"error: command 'x86_64-linux-gnu-gcc' failed with exit status 1" in virtualenv


Environment: Linux Mint 17 Cinnamon.

This error is displayed:

error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

when attempting the following in a virtualenv:

pip install lxml
pip install pillow
pip install pycrypto
pip install pymongo (fails but still shows in pip freeze)

There are several solutions here that recommend installing python2.7-dev:

Installing Pillow error: Setup script exited with error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

Installing lxml in virtualenv via pip install error: command 'x86_64-linux-gnu-gcc' failed

Pillow installation error: command 'gcc' failed with exit status 1

fatal error: Python.h: No such file or directory

I am confused by this recommendation however because it is my understanding that using something like:

sudo apt-get install python2.7-dev

would add this to the main *system* instance of Python, rather that the one in virtualenv. (see - https://unix.stackexchange.com/a/56392/92486)

Can I add python2.7-dev just to the virtualenv version of Python?


Solution

  • I installed python2.7-dev via Synaptic Package Manager in Linux Mint 17.

    I could then accomplish the following in virtualenv:

    pip install pillow
    pip install pycrypto
    

    And then I installed libxml2-dev and libxslt1-dev via Synaptic and could accomplish the following:

    pip install lxml
    

    I also did this so that the pymongo install didn't have any errors:

    pip uninstall pymongo
    pip install pymongo  # i defined the version i needed ie pip install pymongo==2.6.2
    

    I'm still confused how this fixes the problem, because I thought virtualenv was an isolated environment. Any clarification about this appreciated.