2017-12-01 14 views
0

pythonのインポートパッケージの順序を変更したいと思います。私はpythonパッケージを管理するためにanacondaを使用しています。この場合、envを有効にした後、特定のenvに従属するパッケージがローカルのpythonよりも優先順位が高くなるはずです。下のケースを再現させてください。Pythonでパッケージをインポートする順序を変更する(anacondaを使用)

OS:Ubuntuの16.04、Pythonのバージョン:3.5、パッケージマネージャ:anaconda3

 $: source activate myenv 
(myenv) $: which python 
~/.conda/envs/myenv/bin/python 

(myenv) $:python 
>>> from sys import path 
>>> print (path) 
~/.conda/envs/myenv/lib/python35.zip 
~/.conda/envs/myenv/lib/python3.5 
~/.conda/envs/myenv/lib/python3.5/plat-linux 
~/.conda/envs/myenv/lib/python3.5/lib-dynload 
~/.local/lib/python3.5/site-packages 
~/.conda/envs/myenv/lib/python3.5/site-packages 

それは二つの経路以下になると、両方が異なるバージョンと同じパッケージを持っています。例えば、前者にはテンソルフロー1.3があり、後にテンソルフロー1.4があります。この場合、テンソルフローをインポートすると、テンソルフローの1つがインポートされます。

(myenv) $: python 
>>> import tensorflow as tf 
>>> print(tf.__version__) 
'1.3.0' 
>>> print(tf) 
<module 'tensorflow' from '~/.local/lib/python3.5/site-packages/tensorflow/__init__.py'> 

私は「1.4.0」との1が「1.3.0」ではなくインポートすることにしたい、と私はそれがのsys.pathに記載されている注文するべきだと思います。したがって、どのように手動で永久に注文を変更できますか?

答えて

1

私はここで、あなたが記述されている問題は、アナコンダのトラブルシューティングのドキュメントで覆われていると思う:Resolution: For Python packages, remove any site-specific directories

あなたはちょうどあなたがあなたのアナコンダ仮想環境にインストールされているtensorflowのバージョンを使用する(とでバージョンを無視したい場合あなたの~/.local/lib/pythonフォルダ)、あなたはAnaconda環境のexport PYTHONNOUSERSITE=Trueを使って、pythonにignore your user site packages directoryと言うことができます。

あなたはこれがあなたのために自動的に行われるように、あなたのアナコンダ環境内で実行されているすべての時間をしたい場合は、アナコンダのドキュメントで説明したように、ここで、環境変数を保存することになります:Saving environment variables

+0

は、あなたの明確いただきありがとうございますし、親切な方向。私は私の問題を解決し、 –

関連する問題