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

激活Python venv虚拟环境后py启动器报ModuleNotFoundError问题

py启动器在激活venv后运行脚本出现ModuleNotFoundError的原因

以下是几种可能导致该问题的原因:

1. 脚本开头的Shebang行覆盖venv优先级

py启动器会优先读取脚本开头的#!(shebang)指令选择Python版本。如果你的脚本包含类似#!python3.12或#!/usr/bin/env python3的行,py启动器会直接匹配对应版本的系统Python,而非当前激活的venv中的Python——哪怕py -0p显示venv的Python优先级最高。

比如,若系统和venv均为Python3.12版本,py启动器会优先调用系统路径下的Python3.12,而非venv中的,导致无法找到venv site-packages下的模块。

2. 脚本所在目录存在版本控制文件

py启动器会检测脚本所在目录(及父目录)的.python-version或pyproject.toml文件,若这些文件指定了特定Python版本,会覆盖当前shell激活的venv设置,调用对应版本的系统Python,跳过venv环境。

3. py启动器的进程环境继承问题

虽然py -0p能识别到PATH中的venv Python,但运行脚本时,py启动器可能未完全继承当前shell的环境变量(如VIRTUAL_ENV)。这种情况下,即使调用了venv的Python,也可能因缺少环境变量标识导致site-packages路径未正确加载(不过你提到py -c的sys.path正常,这种可能性较低)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 20:37:03