Установка lxml, libxml2, libxslt для Python 3.5 в Windows 10
Сначала я пытаюсь запустить для него базовую команду pip install:
C:\Program Files (x86)\Python35-32>pip install lxml
Collecting lxml
Using cached lxml-3.6.4.tar.gz
Building wheels for collected packages: lxml
Running setup.py bdist_wheel for lxml ... error
Complete output from command "c:\program files (x86)\python35-32\python.exe" -u -c "import setuptools, tokenize;__file__='C:\\Users\\Djidiouf\\AppData\\Local\\Temp\\pip-build-ovqa6ncd\\lxml\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d C:\Users\Djidiouf\AppData\Local\Temp\tmp9hzx5gztpip-wheel- --python-tag cp35:
Building lxml version 3.6.4.
Building without Cython.
ERROR: b"'xslt-config' is not recognized as an internal or external command,\r\noperable program or batch file.\r\n"
** make sure the development packages of libxml2 and libxslt are installed **
C:\Users\Djidiouf\AppData\Local\Temp\xmlXPathInitbqgvj3pt.c(1): fatal error C1083: Cannot open include file: 'libxml/xpath.h': No such file or directory
*********************************************************************************
Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?
*********************************************************************************
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\cl.exe' failed with exit status 2
----------------------------------------
Command ""c:\program files (x86)\python35-32\python.exe" -u -c "import setuptools, tokenize;__file__='C:\\Users\\Djidiouf\\AppData\\Local\\Temp\\pip-build-ovqa6ncd\\lxml\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\Djidiouf\AppData\Local\Temp\pip-kk7fdpzx-record\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:\Users\Djidiouf\AppData\Local\Temp\pip-build-ovqa6ncd\lxml\
Я пытался установить libxml2:
C:\Program Files (x86)\Python35-32>pip install libxml2
Collecting libxml2
Could not find a version that satisfies the requirement libxml2 (from versions: )
No matching distribution found for libxml2
И я также попытался установить libxslt:
C:\Program Files (x86)\Python35-32>pip install libxslt
Collecting libxslt
Could not find a version that satisfies the requirement libxslt (from versions: )
No matching distribution found for libxslt
Я также пытался собрать lxml из исходников ( https://github.com/lxml/lxml), но для этого также нужны зависимости libxml2.
Я также попытался установить его с помощью wheel после загрузки файла lxml с http://www.lfd.uci.edu/~gohlke/pythonlibs/:
C:\Program Files (x86)\Python35-32>pip install C:\Users\Djidiouf\Downloads\lxml-3.6.4-cp35-cp35m-win_amd64.whl
lxml-3.6.4-cp35-cp35m-win_amd64.whl is not a supported wheel on this platform.
Кажется, этот файл колеса не поддерживает ни Windows 10, ни Python 3.5.
Любая помощь будет оценена.
1 ответ
lxml
использования libxml2
, libxslt
(на заднем плане) но libxml2
, libxslt
это не модули Python - это библиотеки C/C++. Так что вы не можете установить их с помощью pip. Вы должны загрузить и установить их вручную.
Вы можете найти предварительно скомпилированный lxml
для Windows на неофициальных двоичных файлах Windows для пакетов расширения Python
cp35
в названии файла подразумевается версия для Python 3.5.win32
в названии файла подразумевается версия для 32-битного Python.amd64
в названии файла подразумевается версия для 64-битного Python.
Вы, вероятно, используете 32-битный Python, потому что я вижу 32
а также (x86)
на вашем пути
C:\program files (x86)\python35-32\python.exe
Вы должны найти ссылки на libxml2
, libxslt
на этой странице тоже. В этих библиотеках есть файлы.dll и.exe, и вы можете поместить их в любую папку, которая находится в PATH
переменная. Библиотеки в основном установлены в C:\Windows
или в подпапке.
libxml2
, libxslt
может также иметь заголовочные файлы C/C++ *.h
что вам может понадобиться при компиляции lxml
, (в Linux эти файлы находятся в отдельных пакетахlibxml2-dev
, libxslt-dev
)
Кстати: вы можете использовать Anaconda
распределение (вместо Python.org
распределение). Он устанавливает тот же Python, но с некоторыми предварительно скомпилированными модулями - т.е. это устанавливает lxml
автоматически. Anaconda
может быть лучшим решением для пользователей Windows.
Список всех модулей: https://docs.continuum.io/anaconda/pkg-docs
Также проверьте свой pip --version. У меня была версия 19.0, и двоичные файлы Gohlke .whl не устанавливались. Обновите до 19.2 или выше.