2014-11-25 2 views
23

Окружающая среда: Linux Mint 17 Cinnamon. отображаетсяОшибка: команда «x86_64-linux-gnu-gcc» не смогла с статусом выхода 1 »в virtualenv

Эта ошибка:

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

при попытке следующее в virtualenv:

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

Там несколько решений здесь рекомендуется устанавливать 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

Я смущен этой рекомендации однако, потому что это мое понимание того, что используя что-то вроде:

sudo apt-get install python2.7-dev 

бы добавить это к главному * системы * экземпляр Python, скорее, тот, что у virtualenv. (см. - https://unix.stackexchange.com/a/56392/92486)

Могу я добавить python2.7-dev только к версии Python virtualenv?

+0

Это должно быть перемещено на сервер Ошибка? –

ответ

16

python2.7-dev Я установил через Synaptic Package Manager в Linux Mint 17.

я мог бы выполнить следующее в virtualenv:

pip install pillow 
pip install pycrypto 

А потом я установил libxml2-dev и libxslt1-dev через Synaptic и может выполнить следующие :

pip install lxml 

Я также сделал это для того, чтобы сам понтон идти установка не имеет каких-либо ошибок:

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

Я до сих пор путают, как это решает проблему, потому что я думал, что virtualenv был изолированной среде. Любые разъяснения об этом оцениваются.

+2

Это работает и для Ubuntu 14.10! Спасибо тонну @ user1063287, вы спасли мой день! :) – Dhruv

+0

Рад слышать @DhruvSingh – user1063287

+0

Из документов: «virtualenv» - это инструмент для создания изолированной среды Python ». То, что они означают, изолировано в терминах * пакетов Python *. C библиотеки, заголовки, инструменты сборки и т. Д.из внешней системы видны даже ваши бинарные файлы Python. Это не виртуальная машина или отдельная двоичная установка Python. –

0

Это может быть проблемой в пипе. Чтобы решить, попробуйте:

sudo apt-get remove python-pip

Чтобы установить pip, безопасно загрузите get-pip.py.

https://bootstrap.pypa.io/get-pip.py

sudo python get-pip.py

5

Работа для меня:
Просто установите python2.7-DEV первый
sudo apt-get install python2.7-dev

+1

Работал и для меня! Так полезно xD –

1

Для меня установка LXML терпел неудачу на компиляции.Я следовал инструкциям по установке LXML и уменьшил оптимизацию компилятора:

sudo CFLAGS="-O0" pip install lxml 

После этого, компиляция из LXML удалась.

18

В большинстве случаев это проблемы зависимости.

Следуя следам стека gcc-компилятора, вы можете увидеть отсутствующие файлы. Иногда устанавливать пакеты разработки Python недостаточно.

Например: я пытался сделать pip install requests[security] в моем virtualenv обув. Это результат, который дал мне пин-инсталлятор.

Failed building wheel for cryptography 
Running setup.py bdist_wheel for cffi 
Stored in directory: /root/.cache/pip/wheels/99/e7/9a/68b1c8ca6f6f92b5feebd4d9434f50712b84f6a66d1285ea21 
Successfully built cffi 
Failed to build cryptography 
Installing collected packages: cffi, cryptography, pyOpenSSL, ndg-httpsclient, requests 
Running setup.py install for cryptography 
Complete output from command /opt/foo/django-cms-virtualenv/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip-build-eZaLAG/cryptography/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-BwgYTp-record/install-record.txt --single-version-externally-managed --compile --install-headers /opt/foo/django-cms-virtualenv/include/site/python2.7/cryptography: 
running install 
running build 
running build_py 
running egg_info 
writing requirements to src/cryptography.egg-info/requires.txt 
writing src/cryptography.egg-info/PKG-INFO 
writing top-level names to src/cryptography.egg-info/top_level.txt 
writing dependency_links to src/cryptography.egg-info/dependency_links.txt 
writing entry points to src/cryptography.egg-info/entry_points.txt 
warning: manifest_maker: standard file '-c' not found 

reading manifest file 'src/cryptography.egg-info/SOURCES.txt' 
reading manifest template 'MANIFEST.in' 
no previously-included directories found matching 'docs/_build' 
warning: no previously-included files matching '*' found under directory 'vectors' 
writing manifest file 'src/cryptography.egg-info/SOURCES.txt' 
running build_ext 
building '_Cryptography_cffi_a269d620xd5c405b7' extension 
x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c src/cryptography/hazmat/bindings/__pycache__/_Cryptography_cffi_a269d620xd5c405b7.c -o build/temp.linux-x86_64-2.7/src/cryptography/hazmat/bindings/__pycache__/_Cryptography_cffi_a269d620xd5c405b7.o 
src/cryptography/hazmat/bindings/__pycache__/_Cryptography_cffi_a269d620xd5c405b7.c:217:25: fatal error: openssl/aes.h: Datei oder Verzeichnis nicht gefunden 
#include <openssl/aes.h> 
         ^
compilation terminated. 
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1 

Важной частью является: #include <openssl/aes.h>

Компилятор делает довольно ясно, что он требует этот файл - но это не существует в файловой системе.

Зная, что осталось только: установить необходимые библиотеки!

  1. Узнайте, какой пакет необходим для распределения: например для Ubuntu вы можете перейти на The Ubuntu Package Search Site и ввести недостающий файл, который вы ищете. В этом случае «aes.h»
  2. Установите необходимые пакеты с помощью инструмента управления пакетами дистрибутивов: например. для Ubuntu:

    aptitude install libssl-dev

  3. Retry с ПУМ в вашем virtualenv:

    pip install requests[security]

+1

Да! 'install libssl-dev' решил мои проблемы при попытке установить bpython новый ящик Ubuntu 14.04. Бесконечно благодарен! – kramer65

+1

в моем случае отсутствующий lib был 'libffi-dev' – omat

0

cffi библиотека нуждается в libffi-dev:

sudo apt-get install libffi libffi-dev 
0

Самый простой способ:

sudo apt-get build-dep python-imaging 

, а затем

pip install pillow 
0

Это работает для меня, 12,04, python2.7.6 для упаковки LXML

sudo pip install libxml2 libxml2-dev libxslt1-dev 
sudo pip install lxml 
+0

Я думаю, вы имели в виду sudo apt-get install вместо pip? – Vinay

2

В Ubuntu 16.04.1 это работало для меня:

sudo apt-get install libxml2-dev libxslt1-dev python-dev