web-dev-qa-db-ja.com

conda環境内の画面が機能しない

テンソルフローがインストールされていると言うことができるコンダ環境内にいて、画面に移動してからpython -c "import tensorflow";、モジュールが見つからないという。ただし、画面がなくてもうまく機能します。

17
rgaut

同じ問題があります。コンダ環境の1つをアクティブにしました。たとえば、my_envで、my_envでテンソルフローを使用できます。次に、画面に移動します。ここでは、テンソルフローをインポートできなくなりました。画面内では、「my_env」が「conda env list」または「conda list」にリストされたテンソルフローでアクティブになっているため、これは奇妙です。

私にとっての1つの回避策は、画面に入る前にその環境を非アクティブ化することでした。画面に入った後、my_envを有効にします。次に、その中に含まれるテンソルフローを使用できましたmy_env

26
jhch

あなたがする必要があるのは、画面に入る前に環境を無効にすることです

source deactivate

次に画面に入ります

screen -R my_screen 

次に、環境をアクティブにします

source activate myenv

これは画面のバグです。環境myenvが表示されますが、実際にはアクティブ化されていません。しかし、画面変数には、既にアクティブになっていると表示されます。したがって、画面で再度有効にすることはできません。

解決策は、画面外で無効にすることです。次に、画面に入ります。そして、環境を再度アクティブにします。

8
Tessaracter

この問題は、$ HOME/.bashrcファイルに次のような行を追加することで作成されます。

export PATH=$HOME/anaconda3/bin:$PATH

画面が起動すると、.bashrcスクリプトが再度実行され、パスに別のバージョンの$ HOME/anaconda3/binが追加されます。スクリーンセッションで仮想環境を再度アクティブ化しても、シェルは誤ったpythonのコピーを使用してしまいます。

Anaconda> 4.4でこれを修正する推奨方法は、パスを設定する行を削除し、次を.bashrcファイルに追加することです

. $HOME/anaconda3/etc/profile.d/conda.sh

これには、condaコマンドを使用してanaconda環境をアクティブ化および非アクティブ化できるという追加の利点があります。例えば.

conda activate myenv

詳細については、 https://github.com/conda/conda/blob/master/CHANGELOG.md#440-2017-12-2 をご覧ください。

3
D Dowling