已在虚拟环境安装flask,python3运行报ModuleNotFoundError但python运行正常?
问题原因及解决方案
核心原因
- Git Bash环境下的
python3命令没有指向你当前激活的虚拟环境的Python解释器,指向了系统全局安装的Python版本,而全局版本未安装flask依赖,因此触发模块找不到的报错。
你可以执行以下两条命令验证指向差异:
which python which python3正常输出中
which python会返回你的虚拟环境目录下myvenv/Scripts/python.exe的路径,而which python3会返回系统全局Python的安装路径。
出现这个问题的根源是Windows平台创建Python虚拟环境时,默认只会生成python.exe可执行文件,不会自动生成python3.exe的别名,因此在优先读取全局命令的规则下,python3就会调用到全局Python。
可行解决方法
- 直接使用
python命令运行脚本:你已经验证过python app.py可以正常执行,虚拟环境下无需刻意使用python3命令调用。 - 临时给
python3设置别名:在已激活虚拟环境的Git Bash窗口执行alias python3='python',执行后当前窗口内python3命令就会指向虚拟环境的Python解释器。 - 永久生效别名设置:把
alias python3='python'写入Git Bash的用户配置文件~/.bashrc,后续所有Git Bash窗口都会默认生效该映射。 - 直接在虚拟环境目录添加别名执行文件:进入你的虚拟环境
myvenv/Scripts/目录,复制python.exe并将副本重命名为python3.exe,后续调用python3就会自动匹配到虚拟环境的版本。
内容的提问来源于stack exchange,提问作者user9516827
相关产品推荐
相关产品推荐

