在 Jupyter Notebook 中使用 Python 虚拟环境

sou*_*nce 8 python virtual-environment jupyter-notebook

我经常发现这很有用,但我不确定有什么方法可以做到这一点。我经常在一个 python 项目上工作,在那里我用一个项目的虚拟环境和一个 Jupyter 笔记本启动项目。当我在 Jupyter notebook 中进行实验时,我开始向虚拟环境添加库。问题是如果我跑

pip freeze > requirements.txt
Run Code Online (Sandbox Code Playgroud)

在我的项目结束时,该文件将在我的虚拟环境中包含 jupyter 的库。有什么方法可以运行 Jupyter 笔记本(例如在我的基本 conda 环境中)但使用与另一个虚拟环境关联的内核?这似乎是最好的解决方案,但我不确定这是否可行?我知道我可能会做一些事情来从冻结的内容中删除这些内容,但这似乎是一种黑客行为。我看不到任何方法可以避免在目标虚拟环境中至少安装 ipykernel

Jen*_*sun 2

  1. 在 Jupyter kernels 目录下创建一个新目录。如果您不知道在哪里可以找到它,请查看此处(https://jupyter-client.readthedocs.io/en/stable/kernels.html)。

  2. 创建一个kernel.json包含以下内容的文件:

{
 "argv": [ "/path-to-env/myenv/bin/python", "-m", "ipykernel",
          "-f", "{connection_file}"],
 "display_name": "myenv",
 "language": "python"
}
Run Code Online (Sandbox Code Playgroud)
  1. 就是这样!现在您可以运行jupyter notebook并能够看到使用您的虚拟环境的内核。

这是一个更详细解释它的博客:https://www.alfredo.motta.name/create-isolated-jupyter-ipython-kernels-with-pyenv-and-virtualenv/

  • `python -m ipykernel install --user --name myenv --display-name "Python (myenv)"` 也可以。 (3认同)