2

ubuntu 12.04 に lxml 3.1.2 をインストールしたいと考えています。パッケージマネージャーを介してすでにlxml2がインストールされています。lxml の二重インストールを成功させた人はいますか?

主にインストールが混乱しているように見えるため、インストールが混乱するのではないかと少し心配しています。

ドキュメントを読みました:

python-libxml2 で lxml を使用する

lxml を公式の libxml2 Python バインディングと一緒に使用する場合 (依存関係の 1 つがそれを使用している可能性があるため)、lxml を静的にビルドする必要があります。そうしないと、libxml2 ライブラリがグローバル構成を必要とする場所で 2 つのパッケージが干渉し、2 つのいずれかで機能の消失からクラッシュまで、あらゆる種類の影響が生じる可能性があります。静的ビルドを取得するには、setup.py スクリプトに --static-deps オプションを渡すか、STATIC_DEPS または STATICBUILD 環境変数を true に設定して pip を実行します。つまり、STATIC_DEPS=true pip install lxml STATICBUILD 環境変数は同等に処理されます。 STATIC_DEPS 変数に追加されますが、他の拡張パッケージでも使用されます。

だから私は走る準備ができています

STATIC_DEPS=true pip install lxml

しかし、私は躊躇します。これが機能すると仮定すると、使用しているlxmlをpythonプログラムでどのように区別できますか?

import lxml 

どの lxml を取得しますか?

現在、pip freeze lxmlは lxml==2.3.2 を提供します

それがpipインストールによるものかubuntuパッケージによるものかはわかりません...

dpkg -L python-lxml を使用すると、次のような多くのファイルが取得されます。

> /usr/lib/python2.7/dist-packages/lxml-2.3.2.egg-info/not-zip-safe
> /usr/lib/python2.7/dist-packages/lxml-2.3.2.egg-info/SOURCES.txt
> /usr/lib/python2.7/dist-packages/lxml-2.3.2.egg-info/dependency_links.txt
> /usr/lib/python2.7/dist-packages/lxml-2.3.2.egg-info/top_level.txt
> /usr/lib/python2.7/dist-packages/lxml-2.3.2.egg-info/PKG-INFO

としても:

> /usr/share/pyshared/lxml-2.3.2.egg-info
> /usr/share/pyshared/lxml-2.3.2.egg-info/not-zip-safe
> /usr/share/pyshared/lxml-2.3.2.egg-info/SOURCES.txt
> /usr/share/pyshared/lxml-2.3.2.egg-info/dependency_links.txt
> /usr/share/pyshared/lxml-2.3.2.egg-info/top_level.txt
> /usr/share/pyshared/lxml-2.3.2.egg-info/PKG-INF

lxml を使用する場合、これら (または他の場所) のどれから来ていますか?

神秘!

4

1 に答える 1

2

どのlxmlがロードされ実行されているかを確認できます

$ python -c "import lxml; print lxml.__file__"

同じパッケージの複数のバージョンを使用する場合は、virtualenvが役立つ場合があります。実際、この条件がなくても役に立ちます。

仮想環境の使用を簡素化するには、 virtualenvwrapper を使用することをお勧めします。次に、次のように簡単に切り替えることができます。

$ workon lxml232
(lxml232) $ python -c "import lxml.etree; print lxml.etree.__version__"
2.3.2
(lxml232) $ workon lxm312
(lxml312) $ python -c "import lxml.etree; print lxml.etree.__version__"
3.1.2
于 2013-11-08T10:24:02.143 に答える