Python 3 没有名为 '_ssl' 的模块

标签 python python-3.x centos pyopenssl

问题

当我运行你的 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

中央操作系统 7

python 3.6

最佳答案

我找到了一些解决方案:

如果你使用centos,试试:

s1

yum install openssl-devel -y

然后编译的时候,追加--with-ssl,就像这样

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

s2

-- 安装依赖库,让share编译流畅

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

关于Python 3 没有名为 '_ssl' 的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44106399/

相关文章:

python - numpy 数组中两组值之间的距离

python - 循环遍历 Pandas 数据框中的行以检查两个单独列中的值

linux - awk 更新重复数据的时间戳

python - 如何在 Pygame 中使用 Sprite Sheets 创建动画 Sprite ?

python - 页面 HTML 源与我从 "Inspect"看到的源不同

linux - 在 CentOS 7 上构建和使用更新的 GLIBC

ruby-on-rails - 在 Apache HTTPD 上运行的 Rails 应用程序

python - 配置向上和向下箭头以在 Python shell 中滚动历史记录

python - 无法使用带有 selenium 的 python3 在表中找到链接

python - struct.unpack(struct.pack(float)) 有舍入误差?