2012-02-26 38 views
25

Tôi đang sử dụng python 2.7 trên Windows. Làm thế nào đến lỗi sau xảy ra khi tôi cố cài đặt [lxml] [1] bằng cách sử dụng easy_install của [setuptools] [2]?easy_install lxml trên Python 2.7 trên Windows

C:\>easy_install lxml 
Searching for lxml 
Reading http://pypi.python.org/simple/lxml/ 
Reading http://codespeak.net/lxml 
Best match: lxml 2.3.3 
Downloading http://lxml.de/files/lxml-2.3.3.tgz 
Processing lxml-2.3.3.tgz 
Running lxml-2.3.3\setup.py -q bdist_egg --dist-dir c:\users\my_user\appdata\local\temp\easy_install-mtrdj2\lxml-2.3.3\egg-dist-tmp-tq8rx4 
Building lxml version 2.3.3. 
Building without Cython. 
ERROR: 'xslt-config' is not recognized as an internal or external command, 
operable program or batch file. 

** make sure the development packages of libxml2 and libxslt are installed ** 

Using build configuration of libxslt 
warning: no files found matching 'lxml.etree.c' under directory 'src\lxml' 
warning: no files found matching 'lxml.objectify.c' under directory 'src\lxml' 
warning: no files found matching 'lxml.etree.h' under directory 'src\lxml' 
warning: no files found matching 'lxml.etree_api.h' under directory 'src\lxml' 
warning: no files found matching 'etree_defs.h' under directory 'src\lxml' 
warning: no files found matching 'pubkey.asc' under directory 'doc' 
warning: no files found matching 'tagpython*.png' under directory 'doc' 
warning: no files found matching 'Makefile' under directory 'doc' 
error: Setup script exited with error: Unable to find vcvarsall.bat 

Tải gói và chạy setup.py install cũng không giúp:

D:\My Documents\Installs\Dev\Python\lxml\lxml-2.3.3>setup.py install 
Building lxml version 2.3.3. 
Building without Cython. 
ERROR: 'xslt-config' is not recognized as an internal or external command, 
operable program or batch file. 

** make sure the development packages of libxml2 and libxslt are installed ** 

Using build configuration of libxslt 
running install 
running bdist_egg 
running egg_info 
writing src\lxml.egg-info\PKG-INFO 
writing top-level names to src\lxml.egg-info\top_level.txt 
writing dependency_links to src\lxml.egg-info\dependency_links.txt 
reading manifest file 'src\lxml.egg-info\SOURCES.txt' 
reading manifest template 'MANIFEST.in' 
warning: no files found matching 'lxml.etree.c' under directory 'src\lxml' 
warning: no files found matching 'lxml.objectify.c' under directory 'src\lxml' 
warning: no files found matching 'lxml.etree.h' under directory 'src\lxml' 
warning: no files found matching 'lxml.etree_api.h' under directory 'src\lxml' 
warning: no files found matching 'etree_defs.h' under directory 'src\lxml' 
warning: no files found matching 'pubkey.asc' under directory 'doc' 
warning: no files found matching 'tagpython*.png' under directory 'doc' 
warning: no files found matching 'Makefile' under directory 'doc' 
writing manifest file 'src\lxml.egg-info\SOURCES.txt' 
installing library code to build\bdist.win32\egg 
running install_lib 
running build_py 
creating build 
creating build\lib.win32-2.7 
creating build\lib.win32-2.7\lxml 
copying src\lxml\builder.py -> build\lib.win32-2.7\lxml 
copying src\lxml\cssselect.py -> build\lib.win32-2.7\lxml 
copying src\lxml\doctestcompare.py -> build\lib.win32-2.7\lxml 
copying src\lxml\ElementInclude.py -> build\lib.win32-2.7\lxml 
copying src\lxml\pyclasslookup.py -> build\lib.win32-2.7\lxml 
copying src\lxml\sax.py -> build\lib.win32-2.7\lxml 
copying src\lxml\usedoctest.py -> build\lib.win32-2.7\lxml 
copying src\lxml\_elementpath.py -> build\lib.win32-2.7\lxml 
copying src\lxml\__init__.py -> build\lib.win32-2.7\lxml 
creating build\lib.win32-2.7\lxml\html 
copying src\lxml\html\builder.py -> build\lib.win32-2.7\lxml\html 
copying src\lxml\html\clean.py -> build\lib.win32-2.7\lxml\html 
copying src\lxml\html\defs.py -> build\lib.win32-2.7\lxml\html 
copying src\lxml\html\diff.py -> build\lib.win32-2.7\lxml\html 
copying src\lxml\html\ElementSoup.py -> build\lib.win32-2.7\lxml\html 
copying src\lxml\html\formfill.py -> build\lib.win32-2.7\lxml\html 
copying src\lxml\html\html5parser.py -> build\lib.win32-2.7\lxml\html 
copying src\lxml\html\soupparser.py -> build\lib.win32-2.7\lxml\html 
copying src\lxml\html\usedoctest.py -> build\lib.win32-2.7\lxml\html 
copying src\lxml\html\_dictmixin.py -> build\lib.win32-2.7\lxml\html 
copying src\lxml\html\_diffcommand.py -> build\lib.win32-2.7\lxml\html 
copying src\lxml\html\_html5builder.py -> build\lib.win32-2.7\lxml\html 
copying src\lxml\html\_setmixin.py -> build\lib.win32-2.7\lxml\html 
copying src\lxml\html\__init__.py -> build\lib.win32-2.7\lxml\html 
creating build\lib.win32-2.7\lxml\isoschematron 
copying src\lxml\isoschematron\__init__.py -> build\lib.win32-2.7\lxml\isoschematron 
copying src\lxml\etreepublic.pxd -> build\lib.win32-2.7\lxml 
copying src\lxml\tree.pxd -> build\lib.win32-2.7\lxml 
copying src\lxml\etree_defs.h -> build\lib.win32-2.7\lxml 
creating build\lib.win32-2.7\lxml\isoschematron\resources 
creating build\lib.win32-2.7\lxml\isoschematron\resources\rng 
copying src\lxml\isoschematron\resources\rng\iso-schematron.rng -> build\lib.win32-2.7\lxml\isoschematron\resources\rng 
creating build\lib.win32-2.7\lxml\isoschematron\resources\xsl 
copying src\lxml\isoschematron\resources\xsl\RNG2Schtrn.xsl -> build\lib.win32-2.7\lxml\isoschematron\resources\xsl 
copying src\lxml\isoschematron\resources\xsl\XSD2Schtrn.xsl -> build\lib.win32-2.7\lxml\isoschematron\resources\xsl 
creating build\lib.win32-2.7\lxml\isoschematron\resources\xsl\iso-schematron-xslt1 
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_abstract_expand.xsl -> build\lib.win32-2.7\lxml\isoschematron\resources\xsl\iso-schematron-xslt1 
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_dsdl_include.xsl -> build\lib.win32-2.7\lxml\isoschematron\resources\xsl\iso-schematron-xslt1 
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_schematron_message.xsl -> build\lib.win32-2.7\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-2.7\lxml\isoschematron\resources\xsl\iso-schematron-xslt1 
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_svrl_for_xslt1.xsl -> build\lib.win32-2.7\lxml\isoschematron\resources\xsl\iso-schematron-xslt1 
copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\readme.txt -> build\lib.win32-2.7\lxml\isoschematron\resources\xsl\iso-schematron-xslt1 
running build_ext 
building 'lxml.etree' extension 
error: Unable to find vcvarsall.bat 

    [1]: http://lxml.de/ 
    [2]: http://pypi.python.org/pypi/setuptools 
+0

thử chạy từ dấu nhắc lệnh phòng thu trực quan –

+1

Tôi có thể tải xuống chương trình thiết lập từ [tại đây] (http://www.lfd.uci.edu/~gohlke/pythonlibs/) đã hoạt động, tuy nhiên tôi vẫn muốn để biết lý do tại sao phương pháp thông thường không hoạt động ... – Jonathan

+0

Bạn có trình biên dịch C không? – reclosedev

Trả lời

45

lxml> = 3.xx

  1. tải về một trong những gói MS Windows Installer
  2. easy_install "c:/lxml_installer.exe"(credit kobejohn)

MS Windows Installer downloads available for lxml 3.3.5

một list of all binary/egg lxml package downloads.


lxml 2.3.x

không có cửa sổ trứng nhị phân cho lxml 2.3.3 (2.3.0 là mới nhất từ ​​2.x.x).
mà không cần cung cấp số phiên bản easy_install sẽ tải xuống các nguồn mới nhất,
nhưng bạn chưa cài đặt libxml2 và libxslt.

bạn có thể cài đặt các libs thiếu hoặc bạn có thể thử 2.3 như có trứng nhị phân cho các cửa sổ:
easy_install lxml==2.3

+1

[pypi.python.org danh sách các gói lxml] (https://pypi.python.org/packages/2.7/l/lxml/) –

+0

Tôi không cài đặt được lxml 2.3.3 trong virtualenv –

+0

Cài đặt này trong conda đã giết tôi trong ba ngày qua ! Đây là giải pháp cuối cùng đã làm việc cho tôi. – RYS

25

bạn có thể tải không chính thức của Windows Binaries tại địa chỉ: http://www.lfd.uci.edu/~gohlke/pythonlibs/

ví dụ cho python 2.7 32bit: http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml

Đây là cách dễ nhất trong win32.

+5

Nó sẽ không hoạt động trực tiếp cho virtualenv. Vì vậy, sử dụng easy_install từ virtualenv của bạn với trình cài đặt nhị phân tải xuống để làm cho nó hoạt động. tức là 'easy_install" c: /lxml_installer.exe "' (chỉnh sửa. Tôi ghét phải làm điều này với các cửa sổ, nhưng đó là cách dễ nhất tôi tìm thấy. Nó cũng sẽ hoạt động từ URL, nhưng không có tệp trực tiếp liên kết cho các tập tin nhị phân trên trang trong câu trả lời này) – KobeJohn

10

Tôi đã gặp phải sự cố tương tự. Tôi không biết về vấn đề vcvarsall.bat nhưng nếu bạn chỉ muốn cài đặt lxml bạn có thể sử dụng các trình cài đặt đồ họa ở đây:

https://pypi.python.org/pypi/lxml/3.2.3

Đó làm việc cho tôi.

1

Giải pháp lý tưởng (cũng hoạt động trong môi trường ảo) đã được cung cấp here.

Về cơ bản, nó xuống để tải xuống tệp bánh xe phù hợp từ here ("cp" trong tên tệp là viết tắt của phiên bản Python) và sau đó chỉ cần pip install nhập vào.

Nó hoạt động trên bản cài đặt Python3.3 (virtualenv) của tôi trên Windows 7 64 bit.

+0

Vâng, đây là điều duy nhất phù hợp với tôi. Hoàn hảo! – Pztar

0

Bạn cũng có thể sử dụng anaconda. Một khi bạn đã cài đặt nó (http://continuum.io/downloads) bạn chỉ có thể chạy conda install lxml để cài đặt lxml.

Các vấn đề liên quan