私は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がまだ動作していることを示しました)。ノートブックの途中で環境を変えて元の環境に戻す方法についてのアドバイスはありますか?
私が知る限り、別の環境をアクティブにしてそのように動作させることはできません。あなたができることは、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
それは動作します!ありがとう。 – RGS