Как установить lxml в Windows
Я пытаюсь установить lmxl
на свой ноутбук с Windows 8.1 с Python 3.4 и неудачно.
Во-первых, я пробовал простое и очевидное решение: pip install lxml
. Однако это не сработало. Вот что он сказал:
Downloading/unpacking lxml
Running setup.py (path:C:\Users\CARTE_~1\AppData\Local\Temp\pip_build_carte_000\lxml\setup.py) egg_info for package lxml
Building lxml version 3.4.2.
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 **
Using build configuration of libxslt
C:\Python34\lib\distutils\dist.py:260: UserWarning: Unknown distribution option: 'bugtrack_url'
warnings.warn(msg)
warning: no previously-included files found matching '*.py'
Installing collected packages: lxml
Running setup.py install for lxml
Building lxml version 3.4.2.
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 **
Using build configuration of libxslt
building 'lxml.etree' extension
C:\Python34\lib\distutils\dist.py:260: UserWarning: Unknown distribution option: 'bugtrack_url'
warnings.warn(msg)
error: Unable to find vcvarsall.bat
Complete output from command C:\Python34\python.exe -c "import setuptools, tokenize;__file__='C:\\Users\\CARTE_~1\\AppData\\Local\\Temp\\pip_build_carte_000\\lxml\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record C:\Users\CARTE_~1\AppData\Local\Temp\pip-l8vvrv9g-record\install-record.txt --single-version-externally-managed --compile:
Building lxml version 3.4.2.
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 **
Using build configuration of libxslt
running install
running build
running build_py
creating build
creating build\lib.win32-3.4
creating build\lib.win32-3.4\lxml
copying src\lxml\builder.py -> build\lib.win32-3.4\lxml
copying src\lxml\cssselect.py -> build\lib.win32-3.4\lxml
copying src\lxml\doctestcompare.py -> build\lib.win32-3.4\lxml
copying src\lxml\ElementInclude.py -> build\lib.win32-3.4\lxml
copying src\lxml\pyclasslookup.py -> build\lib.win32-3.4\lxml
copying src\lxml\sax.py -> build\lib.win32-3.4\lxml
copying src\lxml\usedoctest.py -> build\lib.win32-3.4\lxml
copying src\lxml\_elementpath.py -> build\lib.win32-3.4\lxml
copying src\lxml\__init__.py -> build\lib.win32-3.4\lxml
creating build\lib.win32-3.4\lxml\includes
copying src\lxml\includes\__init__.py -> build\lib.win32-3.4\lxml\includes
creating build\lib.win32-3.4\lxml\html
copying src\lxml\html\builder.py -> build\lib.win32-3.4\lxml\html
copying src\lxml\html\clean.py -> build\lib.win32-3.4\lxml\html
copying src\lxml\html\defs.py -> build\lib.win32-3.4\lxml\html
copying src\lxml\html\diff.py -> build\lib.win32-3.4\lxml\html
copying src\lxml\html\ElementSoup.py -> build\lib.win32-3.4\lxml\html
copying src\lxml\html\formfill.py -> build\lib.win32-3.4\lxml\html
copying src\lxml\html\html5parser.py -> build\lib.win32-3.4\lxml\html
copying src\lxml\html\soupparser.py -> build\lib.win32-3.4\lxml\html
copying src\lxml\html\usedoctest.py -> build\lib.win32-3.4\lxml\html
copying src\lxml\html\_diffcommand.py -> build\lib.win32-3.4\lxml\html
copying src\lxml\html\_html5builder.py -> build\lib.win32-3.4\lxml\html
copying src\lxml\html\_setmixin.py -> build\lib.win32-3.4\lxml\html
copying src\lxml\html\__init__.py -> build\lib.win32-3.4\lxml\html
creating build\lib.win32-3.4\lxml\isoschematron
copying src\lxml\isoschematron\__init__.py -> build\lib.win32-3.4\lxml\isoschematron
copying src\lxml\lxml.etree.h -> build\lib.win32-3.4\lxml
copying src\lxml\lxml.etree_api.h -> build\lib.win32-3.4\lxml
copying src\lxml\includes\c14n.pxd -> build\lib.win32-3.4\lxml\includes
copying src\lxml\includes\config.pxd -> build\lib.win32-3.4\lxml\includes
copying src\lxml\includes\dtdvalid.pxd -> build\lib.win32-3.4\lxml\includes
copying src\lxml\includes\etreepublic.pxd -> build\lib.win32-3.4\lxml\includes
copying src\lxml\includes\htmlparser.pxd -> build\lib.win32-3.4\lxml\includes
copying src\lxml\includes\relaxng.pxd -> build\lib.win32-3.4\lxml\includes
copying src\lxml\includes\schematron.pxd -> build\lib.win32-3.4\lxml\includes
copying src\lxml\includes\tree.pxd -> build\lib.win32-3.4\lxml\includes
copying src\lxml\includes\uri.pxd -> build\lib.win32-3.4\lxml\includes
copying src\lxml\includes\xinclude.pxd -> build\lib.win32-3.4\lxml\includes
copying src\lxml\includes\xmlerror.pxd -> build\lib.win32-3.4\lxml\includes
copying src\lxml\includes\xmlparser.pxd -> build\lib.win32-3.4\lxml\includes
copying src\lxml\includes\xmlschema.pxd -> build\lib.win32-3.4\lxml\includes
copying src\lxml\includes\xpath.pxd -> build\lib.win32-3.4\lxml\includes
copying src\lxml\includes\xslt.pxd -> build\lib.win32-3.4\lxml\includes
copying src\lxml\includes\etree_defs.h -> build\lib.win32-3.4\lxml\includes
copying src\lxml\includes\lxml-version.h -> build\lib.win32-3.4\lxml\includes
creating build\lib.win32-3.4\lxml\isoschematron\resources
creating build\lib.win32-3.4\lxml\isoschematron\resources\rng
copying src\lxml\isoschematron\resources\rng\iso-schematron.rng -> build\lib.win32-3.4\lxml\isoschematron\resources\rng
creating build\lib.win32-3.4\lxml\isoschematron\resources\xsl
copying src\lxml\isoschematron\resources\xsl\RNG2Schtrn.xsl -> build\lib.win32-3.4\lxml\isoschematron\resources\xsl
copying src\lxml\isoschematron\resources\xsl\XSD2Schtrn.xsl -> build\lib.win32-3.4\lxml\isoschematron\resources\xsl
creating build\lib.win32-3.4\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_abstract_expand.xsl -> build\lib.win32-3.4\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_dsdl_include.xsl -> build\lib.win32-3.4\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_schematron_message.xsl -> build\lib.win32-3.4\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_schematron_skeleton_for_xslt1.xsl -> build\lib.win32-3.4\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_svrl_for_xslt1.xsl -> build\lib.win32-3.4\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\readme.txt -> build\lib.win32-3.4\lxml\isoschematron\resources\xsl\iso-schematron-xslt1
running build_ext
building 'lxml.etree' extension
C:\Python34\lib\distutils\dist.py:260: UserWarning: Unknown distribution option: 'bugtrack_url'
warnings.warn(msg)
error: Unable to find vcvarsall.bat
----------------------------------------
Cleaning up...
Command C:\Python34\python.exe -c "import setuptools, tokenize;__file__='C:\\Users\\CARTE_~1\\AppData\\Local\\Temp\\pip_build_carte_000\\lxml\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record C:\Users\CARTE_~1\AppData\Local\Temp\pip-l8vvrv9g-record\install-record.txt --single-version-externally-managed --compile failed with error code 1 in C:\Users\CARTE_~1\AppData\Local\Temp\pip_build_carte_000\lxml
Storing debug log for failure in C:\Users\carte_000\pip\pip.log
Итак, я посмотрел на эту замечательную и полезную вещь под названием "Интернет", и многие люди испытывают такую же ошибку, которая нужна libxml2
и libxlst
. Они рекомендуют парня по имени Christoph Gohlke, где он предоставляет какую-то двоичную вещь для кучи пакетов. Вы можете найти здесь здесь (ссылка на часть lxml).
Итак, после того, как я отказался от поиска libxml2 и libxslt для pip, я решил пойти туда и нашел абсолютную массу загрузок. Я знаю, что мне нужен 64-битный, но я понятия не имею, что "cp
" мне нужно.
Таким образом, ответ, дающий мне решение по методу pip
или методу индекса Gohlke, будет большим.
Ответы
Ответ 1
Сначала, после комментариев, я загрузил файл lxml-3.4.2-cp34-none-win_amd64.whl
и попытался открыть его с помощью pip install
, но он просто сказал мне, что это не действительный файл колес в моей системе или что-то в этом роде.
Затем я загрузил файл win_32
, и он сработает! Может быть, потому, что у меня есть процессор Intel, а AMD64, что неудивительно, только для процессоров AMD.
Ответ 2
Или вы также можете перейти на страницу Christoph Gohlke Python, а затем загрузить правый файл lxml. (Обычно, поскольку я использую python 3.4, и у меня есть окна, я загружаю lxml-3.4.4-cp34-none-win32.whl)
Перейдите в папку, в которой она находится. Щелкните в фоновом режиме (так что ничего не выбрано), затем щелкните левой кнопкой мыши + правой кнопкой мыши и щелкните по открытому командному окну. Затем введите
C:/Python34/Scripts/pip install "НАЗВАНИЕ ФАЙЛА, ВЫ ТОЛЬКО ЗАГРУЖЕНЫ .whl"
В этом случае это будет C:/Python34/Scripts/pip install "lxml-3.4.4-cp34-none-win32.whl"
Теперь нажмите enter. Это сработало для меня, и после ввода цитаты вы также можете нажать вкладку, и она должна заполнить правильный вариант для вас.
Ответ 3
Эти инструкции предназначены для Windows7 или Windows8 с Python3.4.
Однако, они должны работать для разных версий, поскольку версии python и другие соответствующие предпосылки изменяются/развиваются:
- Установить Python3.4:
- Загрузите последнюю версию Python3.4 со страницы загрузки ЗДЕСЬ
- Прямая ссылка для установщика Win32 MSI → ЗДЕСЬ
- Просто запустите MSI для установки python. Он зарегистрируется в реестре и появится в разделе "Добавить/Редактировать программы".
- ПРИМЕЧАНИЕ. мои следующие инструкции предполагают, что вы решили установить python на путь по умолчанию
C:\python34\
при запросе во время мастера установки Python
- Добавьте каталоги
C:\python33\
и C:\python34\scripts
к системному пути, добавив эти каталоги в переменную среды PATH
из ссылки Панель управления > Системa > Дополнительные системные параметры (вкладка "Дополнительно" ) > "Экологические переменные" ( Кнопка).
- Установить OpenSSL:
- Загрузите страницу Win32 OpenSSL из ЗДЕСЬ для вашей версии архитектуры Windows и ПК
- Загрузите Распространяемые материалы Visual С++ 2008 для вашей версии архитектуры Windows и ПК.
- Загрузите OpenSSL для вашей версии Windows и архитектуры (обычная версия, а не световая)
- Добавьте каталог
c:\openssl-win32\bin
(или аналогичный) в ваш PATH
, так же, как вы добавили C:\python34
и C:\python34\scripts
выше.
- Установить Setuptools (
get-pip.py
должен установить Setuptools для вас), но на всякий случай...
- Загрузите
ez_setup.py
ЗДЕСЬ и сохраните его в C:\python34\scripts
- Выполнить
C:\python34\scripts> python ez_setup.py
- Установите PIP
- Загрузите
get-pip.py
из ЗДЕСЬ и сохраните его в C:\python34\scripts
- Запустить
C:\python34\scripts> python get-pip.py
- Установите LXML
- Загрузите
LXML 3.4.4
из ЗДЕСЬ для вашей версии архитектуры Windows и ПК
- Запустите EXE файл
Ответ 4
Я также встречаю эту проблему недавно. pip не может работать с .whl файлом. Вместо того, чтобы исправлять это, я устанавливаю его через .exe файл. вы можете скачать его из здесь. Выберите правильную версию своего питона. Надеюсь, это поможет вам.
Ответ 5
Похоже, что сегодня, в 2018 году, lxml
может быть установлен из PyPI:
C:\Users\Administrator>"c:\Program Files\Python37\python.exe" -m pip install -U pip wheel setuptools
Collecting pip
Downloading https://files.pythonhosted.org/packages/c2/d7/90f34cb0d83a6c5631cf71dfe64cc1054598c843a92b400e55675cc2ac37/pip-18.1-py2.py3-none-any.whl (1.3MB)
100% |████████████████████████████████| 1.3MB 3.3MB/s
Collecting wheel
Downloading https://files.pythonhosted.org/packages/5a/9b/6aebe9e2636d35d1a93772fa644c828303e1d5d124e8a88f156f42ac4b87/wheel-0.32.2-py2.py3-none-any.whl
Collecting setuptools
Downloading https://files.pythonhosted.org/packages/96/06/c8ee69628191285ddddffb277bd5abdf769166e7a14b867c2a172f0175b1/setuptools-40.4.3-py2.py3-none-any.whl (569kB)
100% |████████████████████████████████| 573kB 2.9MB/s
Installing collected packages: pip, wheel, setuptools
Found existing installation: pip 10.0.1
Uninstalling pip-10.0.1:
Successfully uninstalled pip-10.0.1
The script wheel.exe is installed in 'c:\Program Files\Python37\Scripts' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Found existing installation: setuptools 39.0.1
Uninstalling setuptools-39.0.1:
Successfully uninstalled setuptools-39.0.1
Successfully installed pip-18.1 setuptools-40.4.3 wheel-0.32.2
C:\Users\Administrator>pip install lxml
Collecting lxml
Downloading https://files.pythonhosted.org/packages/d7/9d/1aa28aa9d293a816baec6c37328d6465b722b2ff3f4d1e93ed56e87813ee/lxml-4.2.5-cp37-cp37m-win_amd64.whl (3.6MB)
100% |████████████████████████████████| 3.6MB 1.6MB/s
Installing collected packages: lxml
Successfully installed lxml-4.2.5
C:\Users\Administrator>python
Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:57:15) [MSC v.1915 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from io import BytesIO
>>> some_file_or_file_like_object = BytesIO(b"<root>data</root>")
>>> from lxml import etree
>>> tree = etree.parse(some_file_or_file_like_object)
>>> etree.tostring(tree)
b'<root>data</root>'
Ответ 6
У меня была эта проблема с файлом требований, который перечислил lxml == 4.2.1. Тем не менее, я смог решить эту проблему, обновив его до lxml == 4.2.5.
Ответ 7
С веб-сайта распространителя правильная команда:
pip install lxml==3.4.4
Конечно, обновите номер версии, чтобы он соответствовал последней версии.
Ссылка: https://pypi.org/project/lxml/3.4.4/