无法安装Python包secp256k1,安装时遇WinError 193错误
解决Python 3.6安装secp256k1 0.28时的WinError 193问题
你碰到的这个WinError 193其实是Windows上很常见的架构不兼容问题,大概率是编译secp256k1时调用了和你的Python版本不匹配的32/64位依赖,或者编译环境缺失导致的。我给你整理了几个靠谱的解决方法,按顺序试试:
1. 先确认Python和系统架构匹配
- 打开CMD或者PowerShell,输入
python --version,看看结尾有没有标注64-bit(如果你用的是64位Windows)。要是显示的是32位Python,赶紧卸载重装对应架构的Python 3.6版本——架构不匹配的话后续编译肯定出问题。 - 顺便检查pip的一致性:输入
pip --version,确保它和Python的架构是一致的(比如都是64位)。
2. 直接装预编译的二进制包(最省心)
别折腾本地编译了,直接用现成的轮子包:
- 执行这个命令强制安装二进制版本:
pip install secp256k1==0.28.0 --only-binary :all:,这样pip会跳过本地编译,直接下载适配你系统和Python版本的预编译包。 - 如果上面的命令不行,你可以找到对应Python 3.6和系统架构的
.whl文件(比如secp256k1-0.28.0-cp36-cp36m-win_amd64.whl),下载后用pip install 你下载的文件路径.whl安装。
3. 补全编译所需的环境(非要本地编译的话)
如果必须自己编译,得先装Visual Studio的编译工具:
- 下载安装Visual Studio 2017 Build Tools(Python 3.6对应的编译工具链是这个版本,别装太高版本),安装的时候一定要勾选「C++ build tools」组件,不然编译会缺依赖。
- 装完重启命令行,再试
pip install secp256k1==0.28.0。
4. 清理缓存和检查环境变量
- 有时候pip缓存的损坏文件会搞事情,先清一下缓存:
pip cache purge,然后重新安装试试。 - 检查系统的
PATH环境变量,看看有没有混入32位的库路径,要是有的话暂时移出去,避免编译时调用错库。
小贴士:
WinError 193本质上就是系统加载了不兼容的二进制文件——比如64位Python尝试加载32位的libsecp256k1库,或者反过来。所以优先用预编译包的方法,能最快解决问题,不用跟编译环境较劲。
内容的提问来源于stack exchange,提问作者Kusuma
相关产品推荐
相关产品推荐

