2016-03-15 2 views
2

Я знаю, что этот вопрос задавали много раз. Я пробовал все известные рецепты, но все еще имею проблему.pip install lxml error

Итак, я создал чистую среду. Тогда pip install lxml с ошибкой:

x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/libxml2 -Isrc/lxml/includes -I/usr/include/python2.7 -c src/lxml/lxml.etree.c -o build/temp.linux-x86_64-2.7/src/lxml/lxml.etree.o -w 

In file included from src/lxml/lxml.etree.c:85:0: 

/usr/include/python2.7/Python.h:8:22: fatal error: pyconfig.h: No such file or directory 

compilation terminated. 

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

creating tmp 

cc -I/usr/include/libxml2 -I/usr/include/libxml2 -c /tmp/xmlXPathInitRwrJxg.c -o tmp/xmlXPathInitRwrJxg.o 

/tmp/xmlXPathInitRwrJxg.c:2:1: warning: return type defaults to ‘int’ [-Wimplicit-int] 

main (int argc, char **argv) { 

^ 

cc tmp/xmlXPathInitRwrJxg.o -lxml2 -o a.out 

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

---------------------------------------- 
Cleaning up... 
Command /home/andriy/PROJECTS/delete/env/bin/python2 -c "import setuptools, tokenize;__file__='/tmp/pip-build-XHiH0Y/lxml/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-zuYS3W-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/andriy/PROJECTS/delete/env/include/site/python2.7 failed with error code 1 in /tmp/pip-build-XHiH0Y/lxml 
Traceback (most recent call last): 
    File "/home/andriy/PROJECTS/delete/env/bin/pip", line 11, in <module> 
sys.exit(main()) 
    File "/home/andriy/PROJECTS/delete/env/local/lib/python2.7/site-packages/pip/__init__.py", line 248, in main 
    return command.main(cmd_args) 
    File "/home/andriy/PROJECTS/delete/env/local/lib/python2.7/site-packages/pip/basecommand.py", line 161, in main 
    text = '\n'.join(complete_log) 
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 68: ordinal not in range(128) 

Я должен сказать, что я успешно установлен lxml на окружающую среду с Python3. Более того, я уже успешно установил пакет lxml в другие среды ранее. Но теперь что-то сломалось.

Любые идеи, как решить проблему с Python2.7?

Это второй день мучений, и я собираюсь переустановить мой Ubuntu.

РЕШЕНИЕ

Ниже Padraic Cunningham решить мою проблему. Журнал напрямую указывает, что проблема вызвана отсутствием в системе файла pyconfig.h. Это файл пакета python-dev. Однако этот пакет уже установлен. Таким образом, естественно предположить, что упаковка повреждена и должна быть переустановлена ​​с помощью sudo apt-get install --reinstall python-dev libpython2.7-dev. Кроме того, была переустановлена ​​libpython2.7-dev. После этого файл pyconfig.h появился в правильном месте и pip install lxlm успешно установил пакет lxml.

+1

Убедитесь, что вы 'питон-dev' установлен –

+0

Надежда кто-то придет с каким-то неизвестным рецепту. – Goyo

+0

@PadraicCunningham Он уже установлен. – Andriy

ответ

0

и можно попробовать:

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

+1

уже установлен. – Andriy