Ubuntu 12.04 に lxml 3.1.2 と lxml2 の両方をインストールする

Ubuntu 12.04 に lxml 3.1.2 と lxml2 の両方をインストールする

私はSOでこれを質問しました:https://stackoverflow.com/questions/19852911/lxml-3-1-2-and-lxml2-both-on-ubuntu/19856674#19856674

しかし、おそらく AskUbuntu の方が適切でしょう。そこで、再度、書き直してここに掲載します。

lxml のサイトでは、ubuntu で lxml2 と最新バージョンの lxml の両方を使用できることが示唆されています。

python-libxml2 で lxml を使用する

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

私は一般的にpipパッケージとubuntuパッケージがどのように連携するかについて混乱しているので、実行をためらっていますSTATIC_DEPS=true pip インストール lxmlインストールした lxml2 パッケージが破損したり混乱したりしますか?

SO での提案は、新しい lxml を仮想環境にインストールすることでした。これが最善の方法のように見えますが、lxml サイトではデュアル インストールも機能すると示唆しています。

一般的に、apt-get によってすでにインストールされているパッケージに対して pip (新しいインストールを取得するため) を使用するとどうなりますか?

答え1

Ubuntu は、そのディストリビューションで Python を広範に使用しています。このため、私のポリシーでは、Ubuntu が提供するバージョンは厳密にそのままにしておき、アップデート マネージャーまたは apt-get 経由でのみアップデートするようにしています。この方法で、特定の Python パッケージ/モジュール バージョンに依存する Ubuntu コードの一部が不安定になるリスクを回避しています。

私はすべての開発作業を virtualenv ワークスペースで行い、作業中のアプリケーションに適したワークスペースを使用するようにコマンド ラインと Eclipse を構成します。そのため、私は Ubuntu に干渉せず、Ubuntu も私に干渉しません。

lxml のデュアル インストールは「機能する」可能性が非常に高いですが、インストールが脆弱になる可能性があります。なぜリスクを冒すのでしょうか?

関連情報