MSYS运行pycThermopack时安装Python Pint包报错 咨询解决方案
MSYS环境下Pint安装失败排查与替代方案
大概率遗漏的前置步骤
- 终端开错、依赖装混环境:MSYS自带MINGW64、MINGW32、MSYS原生三个独立终端,跑64位Python调用Fortran的程序必须开MINGW64终端,不少新手直接开默认的MSYS原生终端,或者拿Windows系统里装的pip往MSYS环境塞包,直接触发ABI不兼容、路径识别错误。装Pint之前先在当前打开的终端里跑下面的命令,装齐MSYS适配的基础依赖:
pacman -Syu pacman -S mingw-w64-x86_64-python mingw-w64-x86_64-python-pip mingw-w64-x86_64-gcc-fortran mingw-w64-x86_64-python-setuptools mingw-w64-x86_64-python-wheel
- 环境变量优先级不对:装完上面的依赖先敲
which python和which pip校验,返回的路径必须是/mingw64/bin/开头的MSYS内部路径,如果返回的是C盘用户目录下的Windows系统Python路径,说明环境变量里系统Python优先级比MSYS的高,把MSYS安装目录下的mingw64/bin路径挪到系统Path最前面就行。 - 没清pip损坏缓存、网络连不通:默认pip源在MSYS下经常下载超时、下到损坏的包,之前安装失败残留的缓存也会导致每次装都报同样的错。
亲测可用的Pint安装方式
- 方式1(最稳,零兼容问题):直接装MSYS官方源预编译的Pint包,不用走pip编译,敲一行命令就行:
pacman -S mingw-w64-x86_64-python-pint
装完跑python -c "import pint; print(pint.__version__)",能正常输出版本号就是装成了,和pycThermopack的适配性比pip装的好很多,不会出现奇奇怪怪的GUI报错。 - 方式2(pip装指定版本):如果因为版本匹配要求必须用pip装,先把pip源改成国内镜像提升下载成功率,再走无缓存安装,别加
--user参数——MSYS下加这个参数会把包装到Windows用户目录,MSYS里的Python根本识别不到:
# 先自行配置pip国内pypi镜像 pip install pint --no-cache-dir # 要是跑老版本pycThermopack,对Pint版本有上限要求就指定版本装 # pip install "pint<0.20" --no-cache-dir
提醒一句:所有依赖装完别在CMD、PowerShell里启动GUI,必须在你装依赖用的那个MINGW64终端里启动,不然要么提示找不到Pint,要么提示找不到Fortran动态库。
内容的提问来源于stack exchange,提问作者Ali Marzooq
相关产品推荐
相关产品推荐

