Ubuntuに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.phpおよびhttp://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.27を試しましたが、違い2.6.29libxml2ありません。

石を1つも残さずに、私は成功しました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のインストール手順に追加する必要があります:)感謝+1
Boaz

43
実行した後は、apt-get install libxml2-dev libxslt-dev次のことができますeasy_install lxml
ボブ・ヤンセン

11
最新のubuntuのようなディストリビューションでは、libxslt-devの代わりにlibxslt1-devをインストールする必要があります
Jose

21
少なくともUbuntu 14.04では、パッケージもインストールする必要がありますzlib1g-dev
クリスチャンベレント

3
Ubuntu 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 2013

1
私も13.04にこれが必要でした
mwjackson 2013

3
なぜlib32パッケージのヘッダーが必要なのですか?多分zlib1g-devもうまくいくでしょうか?
Pepijn 2013

1
zlib1g-devはubuntu 13.04で必要でした
Zelo

6
14.04 64ビットでも必要です。
KristinnÖrnSigurðsson2014

43

@Pepijnが@Druskaの回答にコメントしたように、ubuntu 13.04 x64ではlib32z1-devを使用する必要はなく、zlib1g-devで十分です。

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

16

Ubuntu 14.04を使用して、Vagrantにpipでlxmlをインストールしましたが、同じ問題がありました。すべての要件がインストールされているにもかかわらず、同じエラーが何度も発生しました。結局、私のVMはデフォルトでほとんどメモリを必要としませんでした。1024 MBでは、すべてが正常に動作します。

これをVagrantFileに追加すると、lxmlが正しくコンパイル/インストールされます。

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

ヒントを提供してくれたsixhobbitに感謝します(Ubuntu 12.04にlxmlをインストールできない)。


これでうまくいきました。ありがとう。それは、他の誰かを助けるために、コンパイルがステータス4で失敗したと述べました。
Kurtis、

この答えはOPの質問とは関係ありません
Corey Goldberg

10

Ubuntu 14.04の場合

sudo apt-get install python-lxml

私のために働いた。


7
まあそれは悪いニュースです。彼らは固定されている場合、私はそれを取得見解を停止することを、この質問から1000年の担当者を介して獲得してきました...😊
エリック・ウィルソン

9

ステップ1

このコマンドを使用して最新のPython更新をインストールします。

sudo apt-get install python-dev

ステップ2

最初の依存関係libxml2バージョン2.7.0以降を追加する

sudo apt-get install libxml2-dev

ステップ3

2番目の依存関係libxsltバージョン1.1.23以降を追加する

sudo apt-get install libxslt1-dev

ステップ4

最初にpipパッケージ管理ツールをインストールします。このコマンドを実行します。

pip install lxml

疑問がある場合は、ここをクリックしてください


8

AKXによって言及されたパッケージをインストールした後も、同じ問題が発生しました。で解決した

apt-get install python-dev

6

Ubuntu 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
ええ、古い質問に対する古い答えです。つまり、私が尋ねたとき、私はUbuntu 11にいました!
Eric Wilson

はい、ここでそれ以上質問することはできないと思います(ubuntuなどに移動されます)が、それでもまだ多くのWeb検索を追跡しています。そして、誰もがまだUbuntu 11を使用していることを疑います:)。そして、その古いlinuxバージョンと互換性のないパッケージは、いつか改善されることを願っています。
NSGaga-mostly-active 19/03/19

0

まず、Ubuntuのpython-lxmlパッケージとその依存関係をインストールします。

sudo apt-get install python-lxml

次に、を使用pipして、Python用のlxmlを最新バージョンにアップグレードします。

pip install lxml

コードのみの答えは眉をひそめています。説明を追加
Manos Nikolaidis

この答えは正しいかもしれませんが、説明を追加してください。基になるロジックを提供することは、コードを提供することよりも重要です。OPや他のリーダーがこの問題や同様の問題を修正するのに役立ちます。
CodeMouse92

すでにいくつかの良い答えがある質問には、何も新しいものが追加されていないため、反対投票。
Eric Wilson
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.