Kaggle Notebook中!source venv/bin/activate命令失效求助
Notebook中虚拟环境激活失效的解决办法
问题原因
Notebook里以!开头的命令会在独立子shell中执行,每个命令的shell会话相互独立。source venv/bin/activate的激活操作仅在当前子shell生效,会话结束后就回到全局环境,后续!pip freeze自然读取的是全局依赖。
解决方法
直接调用虚拟环境的pip
无需激活环境,直接指定虚拟环境内的pip路径执行命令:!venv/bin/pip freeze # 查看虚拟环境依赖 !venv/bin/pip install 目标包名 # 在虚拟环境安装包配置虚拟环境为Notebook内核(推荐)
- 安装ipykernel到虚拟环境:
!source venv/bin/activate && pip install ipykernel - 将虚拟环境注册为Notebook内核:
!source venv/bin/activate && python -m ipykernel install --user --name=venv - 在Notebook顶部的「内核」菜单中切换到名为
venv的内核,之后所有!pip命令都会指向虚拟环境。
- 安装ipykernel到虚拟环境:
尝试%source魔法命令(兼容性有限)
部分Notebook环境支持用%source替代!source,让激活操作作用于当前Notebook的shell会话:%source venv/bin/activate

内容的提问来源于stack exchange,提问作者Furkan Gözükara
相关产品推荐
相关产品推荐

