Windows命令行运行Bash脚本调用Python脚本时遇ModuleNotFoundError问题
Windows 11 Bash脚本运行Python虚拟环境依赖找不到的解决办法
核心问题分析
在Windows的Bash环境(如Git Bash)中,直接执行虚拟环境激活脚本无法正确加载环境变量,导致后续的pip安装和脚本运行实际调用的是系统级Python,而非虚拟环境内的版本——即便依赖安装提示成功,脚本也无法找到对应包。
具体解决步骤
修正虚拟环境激活方式
必须使用source命令执行激活脚本,才能让虚拟环境的环境变量生效,同时建议将路径中的反斜杠\改为正斜杠/,避免Bash环境下的转义问题:python3 -m venv "c:/path/to/venv" source "c:/path/to/venv/Scripts/activate" pip3 install -r "c:/some/path/requirements.txt" python3 "c:/some/other/path/myscript.py"验证虚拟环境是否正确激活
激活后执行以下命令,确认输出路径指向虚拟环境内的Python和pip:which python3 which pip3正常输出应为
c:/path/to/venv/Scripts/python3.exe和对应路径的pip3.exe。强制使用虚拟环境内的工具
如果激活后仍调用系统级Python/pip,直接指定虚拟环境内的可执行文件路径:# 安装依赖 "c:/path/to/venv/Scripts/pip3" install -r "c:/some/path/requirements.txt" # 运行脚本 "c:/path/to/venv/Scripts/python3" "c:/some/other/path/myscript.py"调整PATH优先级
若系统Python路径优先级高于虚拟环境,临时修改PATH确保虚拟环境工具先被调用:python3 -m venv "c:/path/to/venv" export PATH="c:/path/to/venv/Scripts:$PATH" pip3 install -r "c:/some/path/requirements.txt" python3 "c:/some/other/path/myscript.py"
内容的提问来源于stack exchange,提问作者Pavel V.
相关产品推荐
相关产品推荐

