You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中.venv虚拟环境为何能调用系统级Jupyter Notebook?

问题解答

核心原因拆解

1. 为什么虚拟环境中能直接启动Jupyter?

你通过--user参数安装的Jupyter,其可执行文件会被放置在~/.local/bin目录下,这个目录默认包含在系统的PATH环境变量里。当你激活虚拟环境后,虚拟环境的bin目录会被优先加入PATH,但如果虚拟环境内没有安装Jupyter,系统就会按PATH的顺序继续查找,最终找到用户级安装的Jupyter可执行文件并运行——这个Jupyter属于你之前的用户级Python环境,和当前虚拟环境的Python没有绑定关系。

2. 为什么虚拟环境的Python无法访问用户级的TensorFlow?

python3 -m venv创建的虚拟环境默认是完全隔离的:它的Python解释器只会加载虚拟环境内部lib/python3.8/site-packages目录下的包,不会读取用户级(~/.local/lib/python3.8/site-packages)或系统级的包资源。所以你在虚拟环境的python3终端里无法导入TensorFlow、pip freeze无输出,都是虚拟环境隔离机制正常工作的表现。

解决方法:让Jupyter使用虚拟环境的Python内核

如果想在Jupyter中使用虚拟环境的包,需要把虚拟环境注册为Jupyter的内核:

  1. 激活虚拟环境后,先安装ipykernel:
    (.venv)$ python3 -m pip install ipykernel
    
  2. 将虚拟环境注册为Jupyter内核:
    (.venv)$ python3 -m ipykernel install --user --name=my-venv-kernel
    
  3. 重新启动Jupyter Notebook,新建notebook时选择my-venv-kernel,就能使用虚拟环境内的包了。

内容的提问来源于stack exchange,提问作者Della

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 15:02:15