私のアプリケーションでは、次のものを使用します。
packageA
、これにはpackageX==1.3
が必要ですpackageB
、これにはpackageX==1.4
が必要ですpackageX==1.5
この状況を処理するために、pipでpackageX
の複数のバージョンをインストールするにはどうすればよいですか?
pipはこれに役立ちません。
特定のバージョンをインストールするように指示できますが、他のバージョンは上書きされます。一方、2つのvirtualenvを使用すると、両方のバージョンを同じマシンにインストールできますが、同時に使用することはできません。
最善の方法は、Pythonパスに別の名前を付けて、両方のバージョンを手動でインストールすることです。
ただし、2つのライブラリが同じ名前を持っていることを期待している場合は(そうすべきです)、次のようなインポートエイリアスを使用して必要なバージョンを取得するように変更する必要があります。
import dependencyname_version as dependencyname
現在、これを行うための明確な方法はありません。このハックが機能することを期待できます。
2つのライブラリのうちの1つを捨てて同等のものに置き換えるか、パッチを適用して依存関係の新しいバージョンを受け入れ、パッチをコミュニティに返します。
Eaのソースをダウンロードします。パッケージ。それぞれを個別のフォルダーにインストールします。例えば。バージョン1.10のパッケージがありましたが、いくつかの作業のために開発バージョンに切り替えたいと思いました。 devモジュールのソースをダウンロードしました:git clone https://github.com/networkx/networkx.git
cd netowkrx
このバージョンのフォルダーを作成しました:mkdir /home/username/opt/python
、次にPYTHONPATH env varをexport PYTHONPATH=/home/username/opt/python/lib/python2.7/site-packages/
に設定しました。次に、python setup.py install --prefix=/home/username/opt/python
を使用してインストールしました
さて、私のPYTHONPATHがこの他のsite-packagesフォルダーを指しているので、コマンドラインでpythonを実行し、新しいモジュールをインポートすると、動作します。 PYTHONPATHからの新しいフォルダー。
>>> import networkx as nx
>>> nx.__version__
'2.0.dev_20151209221101'