如何在Jupyter Notebook内通过requirements.txt用pip构建对应运行环境
结论:完全可以实现,无需额外创建environment.yml等配置文件
你只需要在每个notebook的首个代码单元格中添加依赖安装逻辑即可,全程走pip安装适配你的要求,无需引入conda相关配置。
最简实现(requirements与notebook同目录)
直接添加如下代码到第一个单元格即可:
# 安装当前教程对应的依赖包,自动匹配当前Jupyter内核环境 %pip install -r ./requirements.txt
注:
%pip是Jupyter内置的魔术命令,会自动将包安装到你当前打开的notebook对应的内核环境中,比直接用!pip更稳妥,不会出现装到其他环境的问题。
执行完这个单元格后,手动点击一次「重启内核」按钮,后续所有代码就可以正常运行了。
进阶实现(自动匹配对应requirements文件)
如果你的requirements是和notebook同名绑定的(比如pytorch入门.ipynb对应pytorch入门_requirements.txt),可以用下面的代码自动定位依赖文件,不用手动改路径:
import os from IPython.display import display, Javascript # 自动获取当前notebook的文件名 display(Javascript('IPython.notebook.kernel.execute("current_nb_path = " + JSON.stringify(IPython.notebook.notebook_path))')) # 生成对应requirements的路径,可根据你的命名规则调整替换逻辑 req_path = os.path.splitext(current_nb_path)[0] + "_requirements.txt" # 安装依赖,多用户无权限场景可加--user参数 %pip install -r {req_path}
注意事项
- 首次安装完依赖后必须重启一次内核才会生效,你可以在单元格旁加个注释提醒用户操作
- pip本身会自动跳过已安装、且版本符合要求的依赖,重复执行这个单元格也不会浪费时间
- 所有依赖全程通过pip安装,完美适配你部分依赖无法用conda安装的要求
内容的提问来源于stack exchange,提问作者mdrishan
相关产品推荐
相关产品推荐

