Cài đặt mô-đun lxml trong python


88

trong khi chạy tập lệnh python, tôi gặp lỗi này

  from lxml import etree
ImportError: No module named lxml

bây giờ tôi đã cố gắng cài đặt lxml

sudo easy_install lmxl

nhưng nó cho tôi lỗi sau

Building lxml version 2.3.beta1.
NOTE: Trying to build without Cython, pre-generated 'src/lxml/lxml.etree.c' needs to be available.
ERROR: /bin/sh: xslt-config: not found

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

Sử dụng cấu hình xây dựng của libxslt

src/lxml/lxml.etree.c:4: fatal error: Python.h: No such file or directory
compilation terminated.
error: Setup script exited with error: command 'gcc' failed with exit status 1

Câu trả lời:


106

Cứ làm đi:

sudo apt-get install python-lxml

Đối với Python 2 (ví dụ: được yêu cầu bởi Inkscape):

sudo apt-get install python2-lxml

Nếu bạn đang định cài đặt từ nguồn, thì câu trả lời của albertov sẽ giúp ích cho bạn. Nhưng trừ khi có lý do, không, chỉ cần cài đặt nó từ kho lưu trữ.


6
Nếu bạn đang sử dụng môi trường ảo thì đây không phải là câu trả lời đúng.
AlexLordThorsen

71

Tôi đã giải quyết vấn đề nâng cấp phiên bản lxml với:

pip install --upgrade lxml

49

Bạn cần cài đặt các tệp tiêu đề của Python (gói python-dev trong debian / ubuntu) để biên dịch lxml. Cũng như libxml2, libxslt, libxml2-dev và libxslt-dev:

apt-get install python-dev libxml2 libxml2-dev libxslt-dev

2
và libxml2-dev và libxslt-dev.
Lennart Regebro

1
libxslt dường như không được yêu cầu (ít nhất nó không dành cho tôi). Do đó, apt-get install python-dev libxml2 libxml2-dev libxslt-devnên là đủ
Mathieu

Tôi phải làm điều này để cài đặt WeasyPrint, apt-getchỉ riêng hướng dẫn của họ cho Debian 7 không hoạt động.
cnst

1
libxslt rất cần thiết đối với tôi, thiết lập lxml sẽ không thành công nếu không có nó.
axil

32

Nếu bạn đang chạy python3, bạn sẽ phải làm:

pip3 install lxml


Đây là những gì làm việc cho tôi! Tôi đang sử dụng python3 và cài đặt thư viện cho phiên bản trước của python qua pip. Đối với python3, chúng ta nên sử dụng pip3.
Victor

5

Đối với RHEL / CentOS, hãy chạy lệnh "python --version" để tìm ra phiên bản Python. Ví dụ:

$ python --version 
  Python 2.7.12

Bây giờ hãy chạy "sudo yum search lxml" để tìm gói python * -lxml.

$ sudo yum search lxml
Failed to set locale, defaulting to C
Loaded plugins: priorities, update-motd, upgrade-helper
1014 packages excluded due to repository priority protections
============================================================================================================= N/S matched: lxml =============================================================================================================
python26-lxml-docs.noarch : Documentation for python-lxml
python27-lxml-docs.noarch : Documentation for python-lxml
python26-lxml.x86_64 : ElementTree-like Python bindings for libxml2 and libxslt
python27-lxml.x86_64 : ElementTree-like Python bindings for libxml2 and libxslt

Bây giờ bạn có thể chọn gói theo phiên bản Python của mình và chạy lệnh như dưới đây:

$ sudo yum install python27-lxml.x86_64

Tôi đang sử dụng Windows. Bất kỳ giải pháp?
Paul

sử dụng "python2.7.exe -m pip install --upgrade lxml"
Oni

1

Đối với python 3, điều này đã làm việc cho tôi

sudo apt-get install python3-lxml

0

Nếu bạn gặp sự cố này trên hình ảnh dựa trên Alpine, hãy thử cách này:

apk add --update --no-cache g++ gcc libxml2-dev libxslt-dev python-dev libffi-dev openssl-dev make

// pip install -r request.txt

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.