python - 在 Jupyter Notebook 中使用 Python 虚拟环境
问题描述
我经常发现这很有用,但我不确定有什么方法可以做到这一点。我经常在一个 python 项目上工作,我从项目的虚拟环境和 Jupyter 笔记本开始项目。当我在 Jupyter notebook 中进行实验时,我开始将库添加到虚拟环境中。问题是如果我跑
pip freeze > requirements.txt
在我的项目结束时,该文件将在我的虚拟环境中包含 jupyter 的库。有什么方法可以运行 Jupyter 笔记本(例如在我的基本 conda 环境中)但使用与另一个虚拟环境关联的内核?这似乎是最好的解决方案,但我不确定这是否可能?我知道我可能会做一些事情来从冻结的东西中删除这些,但这似乎是一种黑客行为。我看不到任何方法可以避免在目标虚拟环境中至少安装 ipykernel
解决方案
在 Jupyter 内核目录下创建一个新目录。如果您不知道在哪里可以找到它,请在此处查看 ( https://jupyter-client.readthedocs.io/en/stable/kernels.html )。
使用以下内容创建一个
kernel.json
文件:
{
"argv": [ "/path-to-env/myenv/bin/python", "-m", "ipykernel",
"-f", "{connection_file}"],
"display_name": "myenv",
"language": "python"
}
- 而已!现在您可以运行
jupyter notebook
并能够看到使用您的虚拟环境的内核。
这是一个更详细地解释它的博客:https ://www.alfredo.motta.name/create-isolated-jupyter-ipython-kernels-with-pyenv-and-virtualenv/
推荐阅读
- javascript - 如何深入比较两个 JSON,无论是内部数组还是没有 JSON.stringify 的对象?
- c# - 使用 CsvHelper 解析具有不在类中的额外字段/属性的文件
- python - 如何在 Django REST 中手动填充关系模型
- json - 如何验证动态 JSON 密钥?
- r - 用 ggmap 绘制多边形数据
- javascript - 使用Javascript防止asp.net mvc 5站点中的页面更改
- python - sqlalchemy 给出'/usr/local/lib/libtdsodbc.so':找不到文件
- jaxb - jaxb 绑定:命名空间(scd)的包不起作用
- python - 在 try/except 块中连接数据帧
- javascript - 如何确保在文件系统终止写入流之后出现 Express 响应?