在MinGW/MSYS2环境中,优先用Pacman还是Pip安装Python包?
MinGW环境下Python包安装方式选择
不是所有Python包都推荐(或要求)用pacman -S mingw-w64-i686-python-abc替代pip install abc,得根据包的类型和仓库情况来区分:
优先用pacman安装的场景
对于带C扩展的包(比如你遇到的cryptography、cffi),MinGW的pacman仓库里提供的预编译包已经适配了MinGW的编译环境和系统依赖,能直接避免pip安装时出现的编译失败、未定义引用这类问题。而且这类包会和MinGW自带的Python版本、系统库保持兼容,减少版本冲突风险,推荐优先用pacman安装。只能用pip安装的场景
- 小众包、刚发布的新版本包,或者只在PyPI上存在的包,MinGW的pacman仓库里没有对应的
mingw-w64-i686-python-abc包,这种情况下只能用pip安装。 - 纯Python编写的包(无C扩展),pip安装一般不会有兼容性问题,不需要特意改用pacman。
- 小众包、刚发布的新版本包,或者只在PyPI上存在的包,MinGW的pacman仓库里没有对应的
注意事项
不要同时用pacman和pip安装同一个包的不同版本,容易引发依赖冲突或运行异常。如果pacman有对应包就优先用,没有再尝试pip;若pip安装失败,再排查是否缺少编译依赖(比如安装对应的MinGW开发库)。
内容的提问来源于stack exchange,提问作者Felix F Xu
相关产品推荐
相关产品推荐

