2015-04-03 96 views
14

我正尝试在我的Windows 8.1笔记本电脑上安装lmxl,并且发生故障。如何在Windows上安装lxml

首先,我尝试了简单明了的解决方案: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 

于是我看着这个叫互联网伟大的和有益的事情,很多人都需要libxml2libxlst的同样的错误。他们推荐一个名叫Christoph Gohlke的网页,他为一堆软件包提供了一些二进制的东西。你可以找到它herequicklink to the lxml part)。

因此,我放弃试图找到libxml2和libxslt为点,我决定去那里,并发现下载绝对吨。我知道我需要一个64位的,但我不知道我需要哪个“cp”。

所以,给我一个解决方案的方法或Gohlke指数方法的答案会很好。

+1

很确定'cp'意味着在这种情况下的C-Python,并且你应该在你想支持的python版本后匹配它的值。所以'cp33'将用于Python 3.3。 – BlackVegetable 2015-04-03 22:27:48

+1

你需要amd64 3.4 – 2015-04-03 22:31:45

回答

9

首先,下面的评论,我下载了lxml-3.4.2-cp34-none-win_amd64.whl文件,并试图用pip install打开它,但它只是告诉我,它不是我的系统上的有效轮盘文件或其他东西。

然后,我下载了win_32文件,它工作!也许这是因为我有一个英特尔处理器,并且毫无疑问,AMD64仅适用于AMD处理器。

+1

这对我没有任何其他的工作。谢谢。 – metamlkshk 2015-06-16 01:13:03

17

或者你也可以去Christoph's Gohlke's Python page,然后下载正确的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 -noone-win32.whl“

现在点击输入。这对我来说很好,在你输入引号后,你也可以按Tab键,它应该为你填写正确的一个。

+0

谢谢!在我使用python 3.4的Win 7 64bit上:'C:\ Python34> pip install lxml-3.4.4-cp34-none-win_amd64.whl' – 2016-01-15 11:35:40

1

这些说明适用于Windows7或Windows8与Python3.4

然而,他们应该对各种版本的Python的发布等各个工作的先决条件变化/演变:

  1. 安装Python3.4
    1. 下载最后发布Python3。4从下载页面HERE
      • 直接链接,Win32的MSI安装程序 - >HERE
    2. 只需运行MSI安装Python。它将在注册表中注册,并出现在添加/删除程序中。
    3. 注:我的指示遵循假设你选择安装蟒蛇的C:\python34\默认路径通过将这些Python的安装向导期间,当问
  2. 添加C:\python33\C:\python34\scripts文件夹添加到系统路径环境变量从控制面板>系统>高级系统设置链接(高级选项卡)>环境变量(按钮)
  3. 安装OpenSSL的
    1. 下载的Win32 OpenSSL的页从HERE为您的Windows版本和PC架构
    2. 下载的Visual C++ 2008和再分发为您的Windows版本和PC架构
    3. 下载OpenSSL为您的Windows和体系结构(常规版本,而不是轻的一个)
    4. c:\openssl-win32\bin(或类似的)目录添加到您的PATH,与上面添加C:\python34C:\python34\scripts的方式相同。
  4. 安装setuptools的get-pip.py应该为您安装setuptools的),但是,万一......
    1. 下载ez_setup.pyHERE并将其保存在C:\python34\scripts
    2. 运行C:\python34\scripts> python ez_setup.py
  5. 安装PIP
    1. 下载get-pip.pyHERE并将其保存在C:\python34\scripts
    2. 运行C:\python34\scripts> python get-pip.py
  6. 安装LXML
    1. 下载LXML 3.4.4HERE为您的Windows版本和PC架构
    2. 运行EXE文件
1

我最近也遇到这个问题。 pip不能在.whl文件上工作。而不是解决这个问题,我通过.exe文件安装它。你可以从here下载。请选择你的python的正确版本。希望这可以帮到你。