Python 3 没有名为“_ssl”的模块

问题描述 投票:0回答:3

问题

当我运行你的 python3 应用程序时,它显示

  File "/usr/local/lib/python3.6/ssl.py", line 101, in <module>
import _ssl             # if we can't import it, let the error propagate
ModuleNotFoundError: No module named '_ssl'

我尝试过的

安装依赖项

yum install openssl-devel

我还编辑了 setup.py 文件并重新编译 python3

# Detect SSL support for the socket module (via _ssl)
search_for_ssl_incs_in = [
                          '/usr/local/ssl/include',
                          '/usr/local/include/openssl', #I've added this line
                          '/usr/contrib/ssl/include/'
                         ]

我已经编译了openssl的路径配置

#tar -xzvf openssl-***.tar.gz

#./config --prefix=/usr/local --openssldir=/usr/local/openssl

#make & make install

CentOS 7

Python 3.6

python python-3.x centos pyopenssl
3个回答
5
投票

我找到了一些解决方案:

如果你使用centos,请尝试:

s1

yum install openssl-devel -y

然后编译时,附加--with-ssl,就像这样

./configure prefix=/usr/local/share/python3 --with-ssl

s2

--安装依赖库,使共享编译流畅

yum install -y zlib zlib-devel openssl-devel sqlite-devel bzip2-devel libffi libffi-devel gcc gcc-c++

(ubuntu)sudo apt-get install libz-dev

wget --no-check-certificate http://www.openssl.org/source/openssl-1.1.1.tar.gz
tar -zxvf openssl-1.1.1.tar.gz
cd openssl-1.1.1
./config --prefix=$HOME/openssl shared zlib
make && make install

-- 配置共享ld库路径,以便编译时可以找到它

echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/openssl/lib" >> $HOME/.bash_profile
source $HOME/.bash_profile

(zsh用户与.zsh_profile有些不同) -- 使用 openssl 路径编译

 ./configure prefix=/usr/local/share/python3 --with-openssl=$HOME/openssl

3
投票

我遇到了同样的问题,我从源代码安装了 python,但在编译时没有启用 ssl 选项。所以我在下面的文章中找到了解决方案。您需要找到

ssl
部分
Modules/Setup.dist
并取消注释该部分。希望这会对某人有所帮助。


0
投票

对于那些使用 Ubuntu 来到这里的人:尝试一下

apt install libssl-dev

© www.soinside.com 2019 - 2024. All rights reserved.