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

Mingw64环境下Pipenv无法激活虚拟环境的排查与修复求助

Mingw64环境下Pipenv无法激活虚拟环境的排查与修复求助

大家好,我在基于MSYS2的Mingw64环境里装了mingw64/mingw-w64-x86_64-python-pipenv 2025.0.2-1,最近创建新虚拟环境时遇到了奇怪的问题:虚拟环境明明显示创建成功,激活后命令行前缀也出现了环境标识,但Python的路径并没有切换到虚拟环境里的版本,全程也没有任何报错提示。

先给大家看一下我的环境信息和完整操作过程:

$ uname -a
MINGW64_NT-6.3-9600 Corona 3.6.1-28176974.x86_64 2025-04-20 19:58 UTC x86_64 Msys

创建测试环境的步骤及输出:

$ mkdir test && cd test
$ pipenv shell
Creating a virtualenv for this project
Pipfile: D:/Development/msys2/home/Flachs/test/Pipfile
Using D:/Development/msys2/mingw64/bin/python.exe3.12.10 to create virtualenv...
[=== ] Creating virtual environment...created virtual environment CPython3.12.10.final.0-64 in 1863ms
  creator CPython3Windows(dest=D:/Development/.virtualenvs/test-sZ6QxXrV, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, pip=bundle, via=copy, app_data_dir=C:/Users/Flachs/AppData/Local/pypa/virtualenv)
    added seed packages: pip==25.0.1
  activators BashActivator,BatchActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
Successfully created virtual environment!
[ ===] Creating virtual environment...
Virtualenv location: C:/Users/Flachs/.virtualenvs/test-sZ6QxXrV
Launching subshell in virtual environment...
(test-sZ6QxXrV) $ which python
/mingw64/bin/python

能看到命令行前面已经出现了虚拟环境的标识(test-sZ6QxXrV),但which python返回的还是系统Mingw64目录下的Python,完全没切换到虚拟环境对应的路径C:/Users/Flachs/.virtualenvs/test-sZ6QxXrV/Scripts/python.exe。

目前我自己临时写了个修复脚本,在/etc/bash.bashrc里添加了这段内容:

if [[ -n "$PIP_PYTHON_PATH" ]]; then
    echo "changed python path to $(cygpath ${PIP_PYTHON_PATH%python.exe})"
    PATH=$(cygpath ${PIP_PYTHON_PATH%python.exe}):$PATH
fi

这个临时办法能让Python路径强制切换到虚拟环境,但毕竟只是个 workaround,想请教大家有没有更根本的解决思路?或者该从哪些方向进一步排查这个激活异常的原因?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 11:09:36