python import 报错 No module named '_ssh'
linux 上import 时的一种报错
查询下openssl 是否安装,或者版本太低,python3需要openssl 1.0以上版本
openssl version
安装与卸载 openssl
安装依赖:
yum install -y gcc pam-devel zlib-devel perl expat-devel perl-Time-HiRes perl-Test-Harness perl-Test-Simple xinetd telnet-server vsftpd
卸载openssl:
whereis openssl |xargs rm -frv
官网(http://www.openssl.org/source/)下载openssl编译安装,版本根据需求选择:
wget http://www.openssl.org/source/openssl-1.1.1.tar.gz tar zxf openssl-1.1.1.tar.gz cd openssl-1.1.1 ./config --prefix=/usr/local/openssl shared zlib make && make install
执行 openssl lib 路径
export LD_LIBRARY_PATH=/usr/local/openssl/lib
卸载重新编译安装python3
卸载(卸载需谨慎,可以先直接装新版本,没问题再卸载旧版本):
whereis python3 |xargs rm -frv rm -rf /usr/local/bin/python3 /usr/local/bin/pip3
python 下载重新编译安装,有旧版本的,直接起个别名即可,例如;python3.8,
后面加上 --with-openssl=/usr/local/openssl 来指定openssl 位置 很关键
1、wget http://npm.taobao.org/mirrors/python/3.8.0/Python-3.8.0.tgz 2、tar -xzf Python-3.8.0.tgz 3、cd Python-3.8.0 4、./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl 5、make && make install
给新安装的软件 设置软连接, 这样就可以直接在命令行使用了
ln -s /usr/local/python3/bin/python3 /usr/bin/python3 ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3 ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl