从Jupyter Notebook

时间:2016-09-13 22:28:14

标签: python-3.x compatibility environment jupyter conda

我正在使用用Python 3编写的Jupyter Notebook,我想从该Notebook中运行Python 2脚本。我想知道是否可以从Notebook中运行Shell命令,并让这些Shell命令在不同的环境下运行。

例如,如果env2是运行Python 2的Conda环境,env3运行Python 3,而我的Jupyter Notebook运行在env3中,也许我可以在我的Notebook中编写: ! source activate env2 ! script_that_uses_python2.py 然后继续使用Notebook中的python 3代码(并使用script_that_uses_python2.py的输出)。

我尝试了它并且它不起作用(!conda info --envs显示env3仍在运行)。有关如何在笔记本中间更改环境然后返回原始环境的任何建议吗?

1 个答案:

答案 0 :(得分: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文件并尝试阅读,也许......