在 Jupyter Notebook 中通过 shell 激活新的 Conda 环境

Activating a new Conda env through shell from within Jupyter Notebook

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

例如,如果env2是Conda环境运行s Python 2,env3 运行s Python 3,我的Jupyter Notebook 运行s 在 env3 中,也许我可以在我的笔记本中写下: !源激活 env2 ! script_that_uses_python2.py 然后继续使用笔记本中的 python 3 代码(并使用 script_that_uses_python2.py 的输出)。

我试过了,但没有用(!conda info --envs 显示 env3 仍然是 运行ning)。关于如何在笔记本中间更改环境然后返回原始环境的任何建议?

据我所知,您无法激活另一个环境并让它像那样工作。你可以做的是 运行 明确地 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 文件并尝试读取它,也许...

这对我有用:

! source /home/ubuntu/miniconda/etc/profile.d/conda.sh && conda activate envname && python run.py

注意:仅当您 运行 将所有命令用 &&

连接在一行中时才有效