如何离线更新已修改的conda包,使改动在Jupyter中生效?
问题解决步骤
不需要离线更新包,你的问题大概率是Python模块缓存或者Jupyter内核环境不匹配导致的,按以下步骤排查:
1. 确认Jupyter使用的是目标conda环境
在Jupyter Notebook中运行以下代码,查看当前Python解释器路径:
import sys print(sys.executable)
- 如果输出路径不是你的conda环境目录(比如
~/miniconda3/envs/你的环境名/bin/python),说明Jupyter用的不是你装包的环境:- 终端激活你的conda环境:
conda activate 你的环境名 - 安装ipykernel:
pip install ipykernel - 将环境添加到Jupyter内核:
python -m ipykernel install --user --name=你的环境名 - 重启Jupyter Notebook,在Kernel菜单选择你刚添加的环境内核
- 终端激活你的conda环境:
2. 重启Jupyter内核加载修改后的代码
Python会缓存已导入的模块,一旦模块被加载,不会自动读取修改后的文件:
- 在Jupyter Notebook菜单栏点击
Kernel -> Restart - 重新运行所有代码单元格,此时修改后的包代码会被重新加载
3. 验证修改的文件是否正确
确认你修改的文件是conda环境中该包的实际文件:
在Notebook中运行:
import 你的包名 print(你的包名.__file__)
- 对比输出的文件路径和你修改的文件路径是否一致,如果不一致,说明你改错了文件,找到正确路径重新修改即可
进阶:如果想永久保留修改(可选)
如果后续不想每次修改都手动改源码,可以把修改后的包打包成本地conda包:
- 终端激活环境,进入包的源码目录
- 编写
meta.yaml等conda构建配置文件 - 运行
conda build .生成本地包 - 用
conda install --use-local 包名安装本地构建的包
内容的提问来源于stack exchange,提问作者Rayne
相关产品推荐
相关产品推荐

