相关环境:python2.7, macos
其他注意:python2.7版本下仅支持最高m2crypto=0.27.0的版本
相关依赖:
1. swig=3.0.12(官网提示最高到4.0.0,建议使用3.0.12)
2. openssl=1.1(不要使用openssl@3和@4的版本)
如果报错如下信息
SWIG/_m2crypto.i:62: Error: Unable to find 'openssl/opensslv.h'
SWIG/_m2crypto.i:68: Error: Unable to find 'openssl/safestack.h'
SWIG/_evp.i:12: Error: Unable to find 'openssl/opensslconf.h'
SWIG/_rc4.i:5: Error: Unable to find 'openssl/opensslconf.h'
SWIG/_ec.i:7: Error: Unable to find 'openssl/opensslconf.h'
一般是openssl路径不对,pip安装的时候需要指定下路径
pip install --global-option=build_ext --global-option="-I/usr/local/opt/openssl/include" m2crypto==0.27.0
注意:openssl地址需要替换
如果报错如下信息
/usr/local/opt/openssl@1.1/include/openssl/e_os2.h:258: Error: Unable to find 'stdint.h'
openssl旧版本中移出了stdint.h文件,可以使用opensslv.h文件替代,需要更新e_os2.h文件中内容
# include <stdint.h>替换如下内容
# include <openssl/opensslv.h>
如果openssl和swig报错
- 请重新安装openssl和swig版本,并查看最高支持的python版本是多少
- openssl默认的安装地址不正确,需要ln软连接到/usr/local/opt目录下
- whick可以查看使用openssl版本,如果不正确,可以重新安装
3.1 如果路径不正确,需要export指定路径,或者修改.bashrc文件 - openssl和swig可以自己去官网下载安装包自定义安装,不建议使用brew安装
export CFLAGS="-I/usr/local/opt/openssl/include"
export LDFLAGS="-L/usr/local/opt/openssl/lib"
export SWIG_PATH=/usr/local/share/swig/3.0.12
export PATH=$PATH:$SWIG_PATH
export CFLAGS=/usr/local/opt/openssl@1.1/include
export PATH=$PATH:$CFLAGS
export LDFLAGS=/usr/local/opt/openssl@1.1/lib
export PATH=$PATH:$LDFLAGS
其他信息
swig官网:https://www.swig.org/