2016-09-13 54 views
1

我正在用Python 3编写Jupyter笔记本电脑,并且我想从该笔记本电脑中运行Python 2脚本。我想知道是否可以从Notebook内运行Shell命令,并让这些Shell命令在不同的环境下运行。例如,如果env2是运行Python 2的Conda环境,并且env3运行Python 3,并且我的Jupyter Notebook运行在env3中,那么也许我可以在我的笔记本中编写代码: !来源激活env2 ! script_that_uses_python2.py 然后继续使用Notebook中的python 3代码(并使用script_that_uses_python2.py的输出)。从Jupyter笔记本电脑通过外壳激活新的Conda环境

我试过了,它没有工作(!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“导入sys;打印sys.path”'它只显示Python 2目录,所以它可能会找到正确的导入。但是,该脚本中的变量在您的笔记本中将不可用。你可以让Python 2文件写出一个Pickle文件并尝试读取,也许... – darthbith

+0

它的工作原理!谢谢。 – RGS

回答

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文件,并尝试读取,也许...

相关问题