溪明轩

  • Python全栈开发
  • 三溪杂选
  • 爬虫快速入门
  • 首页
  • 文章归档
  • 关于页面

  • 搜索
consul ELK Loki M3DB Thanos TSDB federate ALertmanager PromQL Grafana prometheus nginx Rest Framework 热视图 ansible 网络安全 云盘 wiki Python 爬虫

pip install报错

发表于 2021-04-27 | 分类于 故障处理 | 0 | 阅读次数 259

在我使用pip安装Python包时,报错如下:

Could not fetch URL https://pypi.org/simple/pymysql/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/praw/ (Caused by SSLError(SSLError(136, '[X509] no certificate or crl found (_ssl.c:4232)'))) - skipping
ERROR: Could not find a version that satisfies the requirement pymysql (from versions: none)
ERROR: No matching distribution found for praw

这报错意思是无法连接SSL,但是我Deepin上面确实自带有openSSL,但是没有openssl-dev组件。那就麻烦了,如果是Ubuntu和CentOS可以直接安装,但是Deepin不行,得自己编译安装openSSL!

来吧,用Linux的人还怕折腾么!

一、编译OpenSSL

1.1、编译

因为Deepin系统缺少openssl-dev组件,我们需要先卸载自带的openssl然后自己编译openssl(自行去官网下载源码)。

注意,如果你系统已经使用了一段时间,此时卸载openSSL包,apt会要求你必须将依赖到此组件的程序包全部卸载才行,我的Google Chrome、Pycharm等等全部遭殃,后面要重装了!

sudo apt autoremove openssl
# 先进入解压后的目录
./Configure --prefix=/usr/local/ssl --openssldir=/usr/local/ssl '-Wl,-rpath,$(LIBRPATH)'

make -j12  # 此处核心数看你自己电脑实际情况
sudo make install

1.2、创建软链接

接着需要创建软链接,不然Python编译时会报错libssl.so.3: cannot open shared object file: No such file or directory

sudo ln -s /usr/local/ssl/lib/libssl.so.3 /usr/lib/libssl.so.3
sudo ln -s /usr/local/ssl/lib/libcrypto.so.3 /usr/lib/libcrypto.so.3

二、Python编译

此次编译使用的Python是最新的3.9.4版,请自行在官网下载源码并解压。注意Setup这个文件,只有在python完成安装后才会生成这个文件,也可以跳过此步在第一次编译安装时直接使用--with-openssl=/usr/local/ssl选项。

2.1、修改Models配置

在Models目录找到setup.dist文件,取消以下几行的注释,取消后Python就可以启用SSL。

_socket socketmodule.c


SSL=/usr/local/ssl
_ssl _ssl.c \
	-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
	-L$(SSL)/lib -lssl -lcrypto

2.2、编译Python

./configure --enable-optimizations --prefix=/usr/local/python3.9.4/
# sudo make clean 如果是第一次编译就不用,如果是编译后报错需要先清理再重新编译
make -j12
sudo make altinstall  # 如果直接install会覆盖原来的版本,altinstall表示共存```

Donate comment here
三溪 微信支付

微信支付

三溪 支付宝

支付宝

  • 本文作者: 三溪
  • 本文链接: https://blog.sanxi.info/archives/pipinstall-bao-cuo
  • 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-ND 4.0 许可协议。转载请注明出处!
wiki.js部署全攻略
解决无法访问SSL问题:SSL: CERTIFICATE_VERIFY_FAILED
  • 文章目录
  • 站点概览
三溪

三溪

作诗不作法

120 日志
23 分类
20 标签
RSS
Creative Commons
Links
  • halo官网
  • 玻璃之空
0%
© 2022 三溪
由 Halo 强力驱动
|
主题 - NexT.Pisces v5.1.4
世间微尘里 独爱茶酒中