2016-09-19 12 views
0

私たちは、virtualenvを使ったPython仮想環境設定で、Pythonでいくつかの作業を行うアプリケーションを持っています。python仮想環境と特定のシステムライブラリの関係は何ですか?

システムライブラリのバージョンが仮想環境にインストールされているバージョンと一致しないという問題が発生しました。つまり、NetCDF4が仮想環境にインストールされており、以前はlibnetcdf.so.7yumでインストールされていました。 Pythonパッケージは、libnetcdf.so.7が利用可能であることに依存しているようです。

システムアップデートのためlibnetcdf.so.7は存在しなくなり、libnetcdf.so.11に置き換えられました。

これは質問です。仮想環境をセットアップすると、システムライブラリのバージョンが検出されるのでしょうか、それとも他のメカニズムがありますか?また、これを修正するために環境を再構築する必要がありますか、それとも別のオプションがありますか?

答えて

0

virtualenvを使用して仮想環境を作成する場合は、標準サイトパッケージを環境の一部として含めるかどうかを選択できます。これは現在デフォルトの動作です(コマンドラインで--no-site-packagesを使用してアサートすることもできます)が、これを主張していない古いバージョンのvirtualenvを使用している可能性があります。

この場合、環境をかなり簡単に再作成できるはずです。まず、すべての仮想環境を削除し、以下のコマンドでそれを再作成しcommmand

pip freeze > /tmp/requirements.txt 

で既存の環境では、現在インストールされているパッケージをキャプチャする:

virtualenv --no-site-packages envname 
source envname/bin/activate 
pip install -r /tmp/requirements.txt 

しかしこれのどれも必要なサポートライブラリがインストールされていないという難しい問題に対処しています。古いライブラリの位置から新しいライブラリへのシンボリックリンクを作成してみることもできます。NetCDF4は複数のバージョンのlibnetCDFで動作し、特定のバージョンを使用するように構成されています。もしそうでなければ、thiの問題を解決することは、長くて痛みを伴うかもしれません。

関連する問題