如何基于Ubuntu已有Python解释器创建可继承全局包的Jupyter虚拟环境?
解决虚拟环境无法访问全局site-packages的问题
问题出在你创建virtualenv虚拟环境时,没有添加--system-site-packages参数——默认情况下virtualenv会完全隔离全局的site-packages目录,所以即使全局Python安装了torch,虚拟环境也无法读取到。
下面提供两种解决方式:
方式一:重新创建带全局包继承的虚拟环境
如果现有虚拟环境里没有需要保留的内容,直接重新创建是最简便的:
- 先退出并删除旧环境:
deactivate rm -rf MY-env - 创建带全局包继承的新环境:
virtualenv -p /usr/bin/python3.10 --system-site-packages MY-env source MY-env/bin/activate - 重新安装ipykernel并覆盖原内核配置:
pip install ipykernel python -m ipykernel install --user --name=MY-env --replace-existing
方式二:修改现有虚拟环境的配置(保留已有内容)
如果不想丢弃现有环境里的包,可以修改环境配置开启全局包继承:
- 激活目标虚拟环境:
source MY-env/bin/activate - 编辑虚拟环境根目录下的
pyvenv.cfg文件:nano MY-env/pyvenv.cfg - 找到
include-system-site-packages = false这一行,将false修改为true - 保存退出编辑(nano编辑器按
Ctrl+O确认保存,回车后按Ctrl+X退出) - 重新注册内核使配置生效:
python -m ipykernel install --user --name=MY-env --replace-existing
完成以上操作后,重启Jupyter Lab,选择MY-env内核,再尝试导入torch即可正常访问全局安装的依赖包。
内容的提问来源于stack exchange,提问作者Nima
相关产品推荐
相关产品推荐

