우분투에 lxml을 설치하는 방법


442

Ubuntu 11에서 easy_install을 사용하여 lxml을 설치하는 데 어려움이 있습니다.

입력 $ easy_install lxml하면 다음과 같은 결과가 나타납니다.

Searching for lxml
Reading http://pypi.python.org/simple/lxml/
Reading http://codespeak.net/lxml
Best match: lxml 2.3
Downloading http://lxml.de/files/lxml-2.3.tgz
Processing lxml-2.3.tgz
Running lxml-2.3/setup.py -q bdist_egg --dist-dir /tmp/easy_install-7UdQOZ/lxml-2.3/egg-dist-tmp-GacQGy
Building lxml version 2.3.
Building without Cython.
ERROR: /bin/sh: xslt-config: not found

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

Using build configuration of libxslt 
In file included from src/lxml/lxml.etree.c:227:0:
src/lxml/etree_defs.h:9:31: fatal error: libxml/xmlversion.h: No such file or directory
compilation terminated.

설치 libxslt되었거나 libxml2설치되지 않은 것 같습니다 . http://www.techsww.com/tutorials/libraries/libxslt/installation/installing_libxslt_on_ubuntu_linux.phphttp://www.techsww.com/tutorials/libraries/libxml/installation/installing_libxml_on_ubuntu_linux 의 지침을 따르려고했습니다 . 성공하지 못한 PHP .

내가 시도 wget ftp://xmlsoft.org/libxml2/libxml2-sources-2.6.27.tar.gz하면

<successful connection info>
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /libxml2 ... done.
==> SIZE libxml2-sources-2.6.27.tar.gz ... done.
==> PASV ... done.    ==> RETR libxml2-sources-2.6.27.tar.gz ... 
No such file `libxml2-sources-2.6.27.tar.gz'.

다른 쪽을 먼저 시도하면 ./configure --prefix=/usr/local/libxslt --with-libxml-prefix=/usr/local/libxml2다음과 같이 실패합니다.

checking for libxml libraries >= 2.6.27... configure: error: Could not find libxml2 anywhere, check ftp://xmlsoft.org/.

나는 두 버전을 시도했습니다 2.6.272.6.29libxml2차이는 없었다.

돌을 돌려 sudo apt-get install libxml2-dev놓지 않고 나는 성공적으로 해냈 지만 이것은 아무것도 변하지 않습니다.

답변:


950

Ubuntu를 사용하고 있으므로 해당 소스 패키지를 신경 쓰지 마십시오. apt-get을 사용하여 해당 개발 패키지를 설치하십시오.

apt-get install libxml2-dev libxslt1-dev python-dev

그래도 이전 버전의 lxml에 만족한다면 시도해 볼 수 있습니다.

apt-get install python-lxml

그리고 그것으로 끝납니다. :)


51
이 답변은 lxml 설치 지침에 추가되어야합니다. :) thanks +1
Boaz

43
실행 한 후 apt-get install libxml2-dev libxslt-dev당신은 할 수easy_install lxml
밥 젠슨

11
최신 우분투와 같은 배포판에서는 libxslt-dev 대신 libxslt1-dev를 설치해야합니다
.

21
적어도 우분투 14.04에서는 패키지를 설치해야합니다 zlib1g-dev.
Christian Berendt

3
우분투 16.04에서도 zlib1g-dev필요합니다. 이것 없이는 오류가 발생했습니다 /usr/bin/ld: cannot find -lz.
Jabba

111

lxml이 컴파일되기 전에 lib32z1-dev를 설치해야했습니다 (Ubuntu 13.04 x64).

sudo apt-get install lib32z1-dev

또는 필요한 모든 패키지를 함께 :

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

9
+1. 이 패키지는 언급 된 다른 모든 패키지를 설치 한 후에도 필요했습니다.
Jayesh Bhoot

1

3
lib32 패키지 의 헤더 가 필요한 이유는 무엇 입니까? 아마 zlib1g-dev가 효과가 있습니까?
Pepijn

1
zlib1g-dev는 우분투 13.04에서 필요
Zelo

6
14.04 64 비트에서도 필요합니다.
Kristinn Örn Sigurðsson

43

@Pepijn이 @Druska의 답변에 대해 언급했듯이 우분투 13.04 x64에서는 lib32z1-dev를 사용할 필요가 없으며 zlib1g-dev로 충분합니다.

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

16

우분투 14.04를 사용하여 Vagrant에 pip로 lxml을 설치했으며 동일한 문제가 발생했습니다. 설치된 모든 요구 사항이 있지만 동일한 오류가 반복해서 발생합니다. 내 VM은 기본적으로 메모리가 거의 없었습니다. 1024MB이면 모든 것이 잘 작동합니다.

이것을 VagrantFile에 추가하면 lxml이 올바르게 컴파일 / 설치되어야합니다 :

config.vm.provider "virtualbox" do |vb|
  vb.memory = 1024
end

힌트를 얻은 sixhobbit 덕분 에 (Ubuntu 12.04에 lxml을 설치할 수 없음 참조 ).


이것은 나를 위해 일했습니다. 감사. 다른 사람을 도울 수 있도록 컴파일 상태가 4로 실패했다고 말했습니다.
Kurtis

이 답변은 OP의 질문과 아무 관련이 없습니다
Corey Goldberg

10

우분투 14.04

sudo apt-get install python-lxml

나를 위해 일했다.


7
그건 나쁜 소식입니다. 나는 그들이이 조회를 중지합니다 고정했다면이 질문에서 1000 개 이상의 담당자를 얻었습니다 ... 😊
Eric Wilson

9

1 단계

이 명령을 사용하여 최신 Python 업데이트를 설치하십시오.

sudo apt-get install python-dev

2 단계

첫 번째 종속성 libxml2 버전 2.7.0 이상 추가

sudo apt-get install libxml2-dev

3 단계

두 번째 종속성 libxslt 버전 1.1.23 이상 추가

sudo apt-get install libxslt1-dev

4 단계

pip 패키지 관리 도구를 먼저 설치하십시오 . 이 명령을 실행하십시오.

pip install lxml

의심스러운 경우 여기를 클릭하십시오


8

AKX에서 언급 한 패키지를 설치 한 후에도 여전히 같은 문제가있었습니다. 로 해결

apt-get install python-dev

6

우분투 12.04.3 LTS (Precise Pangolin)의 경우 :

apt-get install libxml2-dev libxslt1-dev

(libxslt1-dev의 "1"에 유의하십시오)

그런 다음 pip / easy_install과 함께 lxml을 설치했습니다.


2

Ubuntu 18.4 (Bionic Beaver)부터는 구조 형식이 훨씬 우수하므로 apt-get 대신 apt를 사용하는 것이 좋습니다.

sudo apt install libxml2-dev libxslt1-dev python-dev

그래도 이전 버전의 버전에 만족한다면 lxml시도해 볼 수 있습니다.

sudo apt install python-lxml

1


@Simplans ( https://stackoverflow.com/a/37759871/417747 ) 의 포인터 와 홈 페이지 덕분에 여기에 많은 답변이 다소 오래되었습니다 ...

나를 위해 일한 것 (Ubuntu bionic) :

sudo apt-get install python3-lxml  

(+ sudo apt-get install libxml2-dev libxslt1-dev전에 설치했지만 여전히 요구 사항인지 확실하지 않음)


1
예, 오래된 질문에 대한 답변입니다. 내가 물었을 때 우분투 11에 있었어요!
Eric Wilson

예, 더 이상 여기에 요청할 수는 없지만 (우분투 등으로 옮겨 갈 것입니다) 여전히 많은 웹 검색을 추적하고 있습니다. 그리고 아무도 여전히 우분투 11을 사용하고 있는지 의심하십시오 :). 그리고 이전의 리눅스 버전과 패키지 비 호환성, 언젠가는 개선되기를 바랍니다.
NSGaga – 대부분 비활성-3

0

먼저 우분투 python-lxml패키지와 그 의존성을 설치하십시오 :

sudo apt-get install python-lxml

그런 다음 pipPython을 사용하여 최신 버전의 lxml로 업그레이드하십시오.

pip install lxml

코드 만 답이 찌그러집니다. 설명 추가
Manos Nikolaidis

이 답변은 정확할 수 있지만 설명을 추가하십시오. OP와 다른 독자들이이 문제와 비슷한 문제를 직접 해결하는 데 도움이되기 때문에 기본 논리를 부여하는 것이 코드를 제공하는 것보다 중요합니다.
CodeMouse92

이미 몇 가지 좋은 답변이있는 질문에 새로운 내용이 추가되지 않았기 때문에 하향 투표.
Eric Wilson
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.