2016-09-13 7 views
1

私はPython 3で書かれたJupyter Notebookで作業しています。そのノートブックからPython 2スクリプトを実行したいと思います。私はノートブック内からシェルコマンドを実行し、これらのシェルコマンドを別の環境下で実行することが可能かどうか疑問に思っていました。Jupyterノートブックから新しいConda envを有効にする

例えば、env2がPython 2を実行するConda環境で、env3がPython 3を実行し、私のJupyter Notebookがenv3で動作する場合、おそらく私のノートブック内に書き込むことができました: ! source activate env2 ! script_that_uses_python2.py し、ノートブックにあるpython 3のコードを続けてください(そしてscript_that_uses_python2.pyの出力を使用します)。

私は試してみましたが動作しませんでした(!conda info --envsはenv3がまだ動作していることを示しました)。ノートブックの途中で環境を変えて元の環境に戻す方法についてのアドバイスはありますか?

+0

私が知る限り、別の環境をアクティブにしてそのように動作させることはできません。あなたができることは、Pythonを明示的に実行することです。 '!/ path/to/anaconda/envs/python2env/bin/python script_that_uses_python2.py'のようなものです。私のシステム上で '!/ path/to/anaconda/envs/python2env/bin/python -c" import sys; print sys.path "'を実行すると、Python 2のディレクトリしか表示されないので、正しいインポートが見つかるはずです。ただし、そのスクリプトの変数はノートブックでは使用できません。あなたは、Python 2ファイルにPickleファイルを書き込んで、それを読み込もうとする可能性があります。 – darthbith

+0

それは動作します!ありがとう。 – RGS

答えて

0

私が知る限り、別の環境をアクティブにしてそのように動作させることはできません。あなたにできることは、私は私のシステムで

!/path/to/anaconda/envs/python2env/bin/python -c "import sys; print sys.path" 

を実行した場合、Pythonは明示的に、

!/path/to/anaconda/envs/python2env/bin/python script_that_uses_python2.py 

のようなものは、それだけではPython 2のディレクトリを示し、それはおそらく正しい輸入を見つけるだろうということ。実行されますただし、そのスクリプトの変数はノートブックでは使用できません。 Python 2ファイルにPickleファイルを書き込んで、それを読み込もうとするかもしれません...

関連する問題