Pythonライブラリがインストールされていますが、インストールしたライブラリを変更せずに別のフォルダからロードしたいとします。次のコードを使用して、パスを置き換えようとしましたが、ライブラリをロードするために2つのパスが格納され、最初の優先順位は古いものです。新しいものに優先順位を設定する(または古いものを削除する)にはどうしたらいいですか?Pythonライブラリをインポートするパスを選択する方法
import pkg_resources
pkg_resources.declare_namespace('google')
pkg_resources.fixup_namespace_packages(_MY_LIBRARY_DIR)
import google.protobuf
print(google.protobuf.__path__)
出力:[ '古いパス'、 '新しいパス']
Pythonは、現在実行中のプログラムのディレクトリ内のパッケージを探し、次に同じディレクトリ内のモジュールを探し、環境変数[PYTHONPATH](http://stackoverflow.com/questions)に従います。/19917492/how-to-use-pythonpath)を参照してください。 virtualenvやpyenvのようなパッケージは、同じシステム内の同じパッケージのいくつかのバージョンの共存を可能にするために、PYTHONPATHの操作を自動化します。 –
これは、X/Y問題の古典的な例のようです。あなたの問題X(1つのシステムで同じパッケージの矛盾したバージョンを持つ方法)を尋ねるのではなく、あなたの考案した解決策Y(Pythonモジュールのインポートパスを使っている)について質問しています。 –