Ошибка установки libxml при использовании pip
Это моя ошибка:
(mysite)[email protected]:~/zjm_test/mysite$ pip install lxml
Downloading/unpacking lxml
Running setup.py egg_info for package lxml
Building lxml version 2.3.
Building without Cython.
ERROR: /bin/sh: xslt-config: not found
** make sure the development packages of libxml2 and libxslt are installed **
Using build configuration of libxslt
Installing collected packages: lxml
Running setup.py install for lxml
Building lxml version 2.3.
Building without Cython.
ERROR: /bin/sh: xslt-config: not found
** make sure the development packages of libxml2 and libxslt are installed **
Using build configuration of libxslt
building 'lxml.etree' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.6 -c src/lxml/lxml.etree.c -o build/temp.linux-i686-2.6/src/lxml/lxml.etree.o -w
src/lxml/lxml.etree.c:4: fatal error: Python.h: 没有那个文件或目录
compilation terminated.
error: command 'gcc' failed with exit status 1
Complete output from command /home/zjm1126/zjm_test/mysite/bin/python -c "import setuptools;__file__='/home/zjm1126/zjm_test/mysite/build/lxml/setup.py';execfile(__file__)" install --single-version-externally-managed --record /tmp/pip-jOhgvD-record/install-record.txt --install-headers /home/zjm1126/zjm_test/mysite/include/site/python2.6:
Building lxml version 2.3.
Building without Cython.
ERROR: /bin/sh: xslt-config: not found
** make sure the development packages of libxml2 and libxslt are installed **
Using build configuration of libxslt
running install
running build
running build_py
running build_ext
building 'lxml.etree' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.6 -c src/lxml/lxml.etree.c -o build/temp.linux-i686-2.6/src/lxml/lxml.etree.o -w
src/lxml/lxml.etree.c:4: fatal error: Python.h: 没有那个文件或目录
compilation terminated.
error: command 'gcc' failed with exit status 1
----------------------------------------
Command /home/zjm1126/zjm_test/mysite/bin/python -c "import setuptools;__file__='/home/zjm1126/zjm_test/mysite/build/lxml/setup.py';execfile(__file__)" install --single-version-externally-managed --record /tmp/pip-jOhgvD-record/install-record.txt --install-headers /home/zjm1126/zjm_test/mysite/include/site/python2.6 failed with error code 1
Storing complete log in /home/zjm1126/.pip/pip.log
Что я могу сделать?
обновлено:
(mysite)[email protected]:~/zjm_test/mysite$ pip install lxml
Downloading/unpacking lxml
Running setup.py egg_info for package lxml
Building lxml version 2.3.
Building without Cython.
Using build configuration of libxslt 1.1.26
Building against libxml2/libxslt in the following directory: /usr/lib
Installing collected packages: lxml
Running setup.py install for lxml
Building lxml version 2.3.
Building without Cython.
Using build configuration of libxslt 1.1.26
Building against libxml2/libxslt in the following directory: /usr/lib
building 'lxml.etree' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/libxml2 -I/usr/include/python2.6 -c src/lxml/lxml.etree.c -o build/temp.linux-i686-2.6/src/lxml/lxml.etree.o -w
src/lxml/lxml.etree.c:4: fatal error: Python.h: 没有那个文件或目录
compilation terminated.
error: command 'gcc' failed with exit status 1
Complete output from command /home/zjm1126/zjm_test/mysite/bin/python -c "import setuptools;__file__='/home/zjm1126/zjm_test/mysite/build/lxml/setup.py';execfile(__file__)" install --single-version-externally-managed --record /tmp/pip-NJw2ws-record/install-record.txt --install-headers /home/zjm1126/zjm_test/mysite/include/site/python2.6:
Building lxml version 2.3.
Building without Cython.
Using build configuration of libxslt 1.1.26
Building against libxml2/libxslt in the following directory: /usr/lib
running install
running build
running build_py
running build_ext
building 'lxml.etree' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/libxml2 -I/usr/include/python2.6 -c src/lxml/lxml.etree.c -o build/temp.linux-i686-2.6/src/lxml/lxml.etree.o -w
src/lxml/lxml.etree.c:4: fatal error: Python.h: 没有那个文件或目录
compilation terminated.
error: command 'gcc' failed with exit status 1
----------------------------------------
Command /home/zjm1126/zjm_test/mysite/bin/python -c "import setuptools;__file__='/home/zjm1126/zjm_test/mysite/build/lxml/setup.py';execfile(__file__)" install --single-version-externally-managed --record /tmp/pip-NJw2ws-record/install-record.txt --install-headers /home/zjm1126/zjm_test/mysite/include/site/python2.6 failed with error code 1
Storing complete log in /home/zjm1126/.pip/pip.log
журнал:
------------------------------------------------------------
/home/zjm1126/zjm_test/mysite/bin/pip run on Thu Mar 3 17:07:27 2011
Downloading/unpacking mysql-python
Running setup.py egg_info for package mysql-python
running egg_info
creating pip-egg-info/MySQL_python.egg-info
writing pip-egg-info/MySQL_python.egg-info/PKG-INFO
writing top-level names to pip-egg-info/MySQL_python.egg-info/top_level.txt
writing dependency_links to pip-egg-info/MySQL_python.egg-info/dependency_links.txt
writing pip-egg-info/MySQL_python.egg-info/PKG-INFO
writing top-level names to pip-egg-info/MySQL_python.egg-info/top_level.txt
writing dependency_links to pip-egg-info/MySQL_python.egg-info/dependency_links.txt
writing manifest file 'pip-egg-info/MySQL_python.egg-info/SOURCES.txt'
warning: manifest_maker: standard file '-c' not found
reading manifest file 'pip-egg-info/MySQL_python.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching 'MANIFEST'
warning: no files found matching 'ChangeLog'
warning: no files found matching 'GPL'
writing manifest file 'pip-egg-info/MySQL_python.egg-info/SOURCES.txt'
Installing collected packages: mysql-python
Running setup.py install for mysql-python
Running command /home/zjm1126/zjm_test/mysite/bin/python -c "import setuptools;__file__='/home/zjm1126/zjm_test/mysite/build/mysql-python/setup.py';execfile(__file__)" install --single-version-externally-managed --record /tmp/pip-XuVIux-record/install-record.txt --install-headers /home/zjm1126/zjm_test/mysite/include/site/python2.6
running install
running build
running build_py
creating build
creating build/lib.linux-i686-2.6
copying _mysql_exceptions.py -> build/lib.linux-i686-2.6
creating build/lib.linux-i686-2.6/MySQLdb
copying MySQLdb/__init__.py -> build/lib.linux-i686-2.6/MySQLdb
copying MySQLdb/converters.py -> build/lib.linux-i686-2.6/MySQLdb
copying MySQLdb/connections.py -> build/lib.linux-i686-2.6/MySQLdb
copying MySQLdb/cursors.py -> build/lib.linux-i686-2.6/MySQLdb
copying MySQLdb/release.py -> build/lib.linux-i686-2.6/MySQLdb
copying MySQLdb/times.py -> build/lib.linux-i686-2.6/MySQLdb
creating build/lib.linux-i686-2.6/MySQLdb/constants
copying MySQLdb/constants/__init__.py -> build/lib.linux-i686-2.6/MySQLdb/constants
copying MySQLdb/constants/CR.py -> build/lib.linux-i686-2.6/MySQLdb/constants
copying MySQLdb/constants/FIELD_TYPE.py -> build/lib.linux-i686-2.6/MySQLdb/constants
copying MySQLdb/constants/ER.py -> build/lib.linux-i686-2.6/MySQLdb/constants
copying MySQLdb/constants/FLAG.py -> build/lib.linux-i686-2.6/MySQLdb/constants
copying MySQLdb/constants/REFRESH.py -> build/lib.linux-i686-2.6/MySQLdb/constants
copying MySQLdb/constants/CLIENT.py -> build/lib.linux-i686-2.6/MySQLdb/constants
running build_ext
building '_mysql' extension
creating build/temp.linux-i686-2.6
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,2,3,'final',0) -D__version__=1.2.3 -I/usr/include/mysql -I/usr/include/python2.6 -c _mysql.c -o build/temp.linux-i686-2.6/_mysql.o -DBIG_JOINS=1 -fno-strict-aliasing -DUNIV_LINUX -DUNIV_LINUX
In file included from _mysql.c:29:
pymemcompat.h:10: fatal error: Python.h: 没有那个文件或目录
compilation terminated.
error: command 'gcc' failed with exit status 1
Complete output from command /home/zjm1126/zjm_test/mysite/bin/python -c "import setuptools;__file__='/home/zjm1126/zjm_test/mysite/build/mysql-python/setup.py';execfile(__file__)" install --single-version-externally-managed --record /tmp/pip-XuVIux-record/install-record.txt --install-headers /home/zjm1126/zjm_test/mysite/include/site/python2.6:
running install
running build
running build_py
creating build
creating build/lib.linux-i686-2.6
copying _mysql_exceptions.py -> build/lib.linux-i686-2.6
creating build/lib.linux-i686-2.6/MySQLdb
copying MySQLdb/__init__.py -> build/lib.linux-i686-2.6/MySQLdb
copying MySQLdb/converters.py -> build/lib.linux-i686-2.6/MySQLdb
copying MySQLdb/connections.py -> build/lib.linux-i686-2.6/MySQLdb
copying MySQLdb/cursors.py -> build/lib.linux-i686-2.6/MySQLdb
copying MySQLdb/release.py -> build/lib.linux-i686-2.6/MySQLdb
copying MySQLdb/times.py -> build/lib.linux-i686-2.6/MySQLdb
creating build/lib.linux-i686-2.6/MySQLdb/constants
copying MySQLdb/constants/__init__.py -> build/lib.linux-i686-2.6/MySQLdb/constants
copying MySQLdb/constants/CR.py -> build/lib.linux-i686-2.6/MySQLdb/constants
copying MySQLdb/constants/FIELD_TYPE.py -> build/lib.linux-i686-2.6/MySQLdb/constants
copying MySQLdb/constants/ER.py -> build/lib.linux-i686-2.6/MySQLdb/constants
copying MySQLdb/constants/FLAG.py -> build/lib.linux-i686-2.6/MySQLdb/constants
copying MySQLdb/constants/REFRESH.py -> build/lib.linux-i686-2.6/MySQLdb/constants
copying MySQLdb/constants/CLIENT.py -> build/lib.linux-i686-2.6/MySQLdb/constants
running build_ext
building '_mysql' extension
creating build/temp.linux-i686-2.6
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,2,3,'final',0) -D__version__=1.2.3 -I/usr/include/mysql -I/usr/include/python2.6 -c _mysql.c -o build/temp.linux-i686-2.6/_mysql.o -DBIG_JOINS=1 -fno-strict-aliasing -DUNIV_LINUX -DUNIV_LINUX
In file included from _mysql.c:29:
pymemcompat.h:10: fatal error: Python.h: 没有那个文件或目录
compilation terminated.
error: command 'gcc' failed with exit status 1
----------------------------------------
Command /home/zjm1126/zjm_test/mysite/bin/python -c "import setuptools;__file__='/home/zjm1126/zjm_test/mysite/build/mysql-python/setup.py';execfile(__file__)" install --single-version-externally-managed --record /tmp/pip-XuVIux-record/install-record.txt --install-headers /home/zjm1126/zjm_test/mysite/include/site/python2.6 failed with error code 1
Exception information:
Traceback (most recent call last):
File "/home/zjm1126/zjm_test/mysite/lib/python2.6/site-packages/pip-0.8.1-py2.6.egg/pip/basecommand.py", line 130, in main
self.run(options, args)
File "/home/zjm1126/zjm_test/mysite/lib/python2.6/site-packages/pip-0.8.1-py2.6.egg/pip/commands/install.py", line 228, in run
requirement_set.install(install_options, global_options)
File "/home/zjm1126/zjm_test/mysite/lib/python2.6/site-packages/pip-0.8.1-py2.6.egg/pip/req.py", line 1043, in install
requirement.install(install_options, global_options)
File "/home/zjm1126/zjm_test/mysite/lib/python2.6/site-packages/pip-0.8.1-py2.6.egg/pip/req.py", line 559, in install
cwd=self.source_dir, filter_stdout=self._filter_install, show_stdout=False)
File "/home/zjm1126/zjm_test/mysite/lib/python2.6/site-packages/pip-0.8.1-py2.6.egg/pip/__init__.py", line 249, in call_subprocess
% (command_desc, proc.returncode))
InstallationError: Command /home/zjm1126/zjm_test/mysite/bin/python -c "import setuptools;__file__='/home/zjm1126/zjm_test/mysite/build/mysql-python/setup.py';execfile(__file__)" install --single-version-externally-managed --record /tmp/pip-XuVIux-record/install-record.txt --install-headers /home/zjm1126/zjm_test/mysite/include/site/python2.6 failed with error code 1
Ответы
Ответ 1
** убедитесь, что пакеты разработки libxml2 и libxslt установлены **
Из документации lxml, если вы используете дистрибутив на основе Debian:
sudo apt-get install libxml2-dev libxslt-dev python-dev
Для систем на основе Debian этого должно быть достаточно для установки известных python-lxml
зависимостей python-lxml
или python3-lxml
, например:
sudo apt-get build-dep python3-lxml
Ответ 2
Это сработало для меня:
yum install libxslt-devel libxml2-devel
Ответ 3
В случае, если вы используете Ubuntu/Lubuntu 13.04 или Ubuntu 13.10 и проблема с "/usr/bin/ld: не может найти -lz", вам также может понадобиться установить пакет zlib1g-dev:
sudo apt-get install -y zlib1g-dev
Объедините все это:
sudo apt-get install -y libxml2-dev libxslt1-dev zlib1g-dev python3-pip
sudo pip3 install lxml
Ответ 4
Нет, вам не хватает файлов заголовков Python. В основном это происходит в Linux, когда вы используете систему Python (есть причины не делать этого, но это другой вопрос).
Вероятно, вам нужно установить какой-то пакет, и он, вероятно, называется python-dev или python-devel.
sudo yum install python-devel
или
sudo aptitude install python-dev
Или что-то вроде.
Ответ 5
Я решил эту проблему, увеличив свой серверный сервер.
Я запускал только 512 МБ, и когда я обновил до 1 ГБ, у меня не было проблем.
Я также устанавливал каждый пакет вручную до этого, пытаясь исправить проблему, но я не уверен, что это необходимый шаг.
Ответ 6
В Windows у меня была такая же ошибка в Windows при попытке установить вручную в Python 3.4 после того, как он был установлен в 3.3. Я наконец смог решить ее, установив колесо и запустив pip из каталога Python34.
1) скачать колесо отсюда: http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml
2) cd Python34\Scripts
3) pip.exe C:\Users\Home\Downloads\lxml-..........whl
Ответ 7
просто установите требования:
sudo apt-get install libxml2-dev libxslt-dev python-dev
Теперь вы можете установить его с помощью инструмента управления пакетами пакетов:
pip install lxml
Ответ 8
error: command 'gcc' failed with exit status 1
yum remove audit
yum install gcc
yum install libxslt-devel libxml2-devel
cd lxml-x.x.x
python setup.py build
python setup.py install
Ответ 9
Я использую Ubuntu 14.04, и это решает проблему для меня
sudo apt-get build-dep python3-lxml
sudo apt-get install libxml2-dev libxslt-dev python-dev
Ответ 10
STATIC_DEPS=true easy_install lxml
Ответ 11
Установка двоичного файла lxml сделала бы трюк. Проверьте это
Ответ 12
sudo apt install libxslt-dev libxml2-dev
а затем попробуйте обновить настройки python setuptools
pip install -U pip setuptools
это должно решить проблему.
Ответ 13
У меня была эта проблема с установкой lxml для pip. Мой экземпляр CentOS использовал python 2.6, который выбрасывал эту ошибку.
Чтобы обойти это, я выполнил следующее для работы с Python 2.7:
- Запуск:
sudo yum install python-devel
- Выполнить
sudo yum install libxslt-devel libxml2-devel
- Используйте Python 2.7 для запуска вашей команды с помощью
/usr/bin/python2.7 YOUR_PYTHON_COMMAND
(Для меня это было /usr/bin/python2.7 -m pip install lxml
)
Ответ 14
pymemcompat.h:10: fatal error: Python.h: 没有那个文件或目录
Мальчик, вы должны опубликовать свой журнал ошибок с помощью LANG=C
, или люди не смогут получить реальную причину из вашего журнала. В приведенном выше журнале говорится: нет такого файла или каталога.
Это означает, что вы должны установить пакет разработки Python. Это обычно "python-dev" на дистрибутив Debian, а также "python-devel" на ароматизированном дистрибутиве RHEL.
Ответ 15
Все приведенные выше ответы предполагают, что у пользователя есть доступ к учетной записи с привилегиями /root для установки необходимых библиотек. Чтобы установить его локально, вам необходимо выполнить следующие шаги. Только показал обзор, поскольку этапы могут быть немного задействованы в зависимости от зависимостей, которые могут отсутствовать.
1.Загрузить и скомпилировать libxml2-2.9.1 и libxslt-1.1.28 (версии могут измениться)
2.Устройте каждый путь установки как для libxml, так и для libxslt как локальный каталог с помощью configure. Ex. ./configure --prefix=/home_dir/dependencies/libxslt_path
3.Run make
, затем make install
4.Загрузить и скомпилировать lxml из источника
Ответ 16
Это работает для меня, 12.04, python2.7.6
sudo apt-get install libxml2 libxml2-dev libxslt1-dev
sudo pip install lxml
Ответ 17
Я знаю, что опаздываю на шоу,
Но это поможет, если ничего не получится
mkdir ~/tmp
export TMPDIR=~/tmp
STATIC_DEPS=true easy_install-2.7 lxml
Настройка TMPDIR гарантирует, что сборка может запускать все, что нужно для запуска, и установка STATIC_DEPS подскажет, чтобы она запустила свой собственный libxml2 и
libxslt2, вместо использования старых версий, установленных на сервере.
Ответ 18
Использование cygwin 64 с Windows 8.
У меня есть...
pip install lxml (...)
gcc -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -ggdb -O2 -pipe -Wimplicit-function-declaration -fdebug-prefix-map=/usr/src/ports/python3/python3-3.2.5-4.x86_64/build=/usr/src/debug/python3-3.2.5-4 -fdebug-prefix-map=/usr/src/ports/python3/python3-3.2.5-4.x86_64/src/Python-3.2.5=/usr/src/debug/python3-3.2.5-4 -I/usr/include/libxml2 -I/tmp/pip-build-b8ybku/lxml/src/lxml/includes -I/usr/include/python3.2m -c src/lxml/lxml.etree.c -o build/temp.cygwin-1.7.34-x86_64-3.2/src/lxml/lxml.etree.o -w
src/lxml/lxml.etree.c:8:22: fatal error: pyconfig.h: No such file or directory
compilation terminated.
/usr/lib/python3.2/distutils/dist.py:257: UserWarning: Unknown distribution option: 'bugtrack_url'
warnings.warn(msg)
error: command 'gcc' failed with exit status 1
----------------------------------------
Command "/usr/bin/python3.2m -c "import setuptools, tokenize;__file__='/tmp/pip-build-b8ybku/lxml/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-u3vwj8-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-b8ybku/lxml
Я пробовал все, пока не понял, что новая инструментальная цепочка cygwin испортила логику python. cygwin устанавливает компилятор под названием "realgcc", который не является реальным gcc.
Решение
Установить gcc. Пример:
apt-cyg install gcc-g++
Ответ 19
Единственное, что помогло мне, было
sudo apt-get install python3.5-dev
Ответ 20
Я получил ту же ошибку на моем компьютере с Linux. Если вы зайдете на их сайт, что и в их документации. Так что, если вы получаете такой тип ошибки на компьютере с Linux, попробуйте эти команды,
# apt install libxml2-dev libxslt-dev python-dev
# pip install lxml==3.4.4
Ответ 21
Я использую Ubuntu 12, и это работает для меня:
sudo apt-get install libxml2-dev
sudo apt-get install libxslt1-dev
sudo apt-get install python-dev
sudo apt-get install lxml
Ответ 22
Если вы установили libxml2 и libxslt, возможно, вам нужно создать символическую ссылку между libxml2 и libxslt, чтобы путь к python2.6 включал путь. Также вы можете попробовать добавить аргумент среды INCLUDE.
Поскольку команда gcc выполняет поиск только по этому пути: -I/usr/include/python2.6.
Ответ 23
Следующий файл работал у меня на окнах
https://pypi.python.org/pypi/lxml/3.3.3#downloads
Ответ 24
В osx 10.10.5 и в virtualenv, возможно, вы можете решить эту проблему, как показано ниже:
sudo C_INCLUDE_PATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/libxml2:/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/libxml2/libxml:/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include pip install -r lxml
Ответ 25
Используя Windows 7 с Cygwin, я наткнулся на:
Compile failed: command 'gcc' failed with exit status 1
cc -I/usr/include/libxml2 -I/usr/include/libxml2 -c /tmp/xmlXPathInitZsgdMQ.c -o tmp/xmlXPathInitZsgdMQ.o
*********************************************************************************
Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?
*********************************************************************************
error: command 'gcc' failed with exit status 1
Я установил его, установив mingw64-x86_64-libxslt
Ответ 26
Я работаю на компьютере с Windows. И вот несколько указателей на успешную установку lxml (с помощью python 2.6 и более поздних версий).
У вас установлено следующее:
- MingGW.
- версия libxml2 версии 2.7.0 или новее.
- libxslt версия 1.1.23 или новее.
Все не доступны в pip install
.
libxml2 windows binary находится здесь.
libxslt найден здесь.
После того, как вы закончите с двумя предыдущими,
do: pip install lxml
.
Другим обходным решением является использование стабильных выпусков из PyPI или неофициальных двоичных файлов Windows Кристофом Гольке (найденным здесь).
Ответ 27
Для Windows:
pip install --upgrade pip wheel
pip install bzt
pip install lxml