问题描述
本人今天在编译Python代码时遇到了这样的问题,过程大概是先用wget
指令下载Python对应版本的源代码,然后用tar
指令解压缩,之后cd
到解压后得到的源代码目录下执行命令./config
进行预编译,然后在make
编译,之后通过make install
命令安装,整个过程可以参考这篇博客。
期间遇到了OpenSSL
的报错
Python requires an OpenSSL 1.0.2 or 1.1 compatible libssl with X509_VERIFY_P
你需要参考其他博客或者这篇,个人感觉我看的这篇里面的一些什么软连接之类的操作既看不懂也没啥必要
,我没管也操作好了,我们主要是一个目的:下载和安装OpenSSL,个人认为比较重点是以下截图的几步:
之后我们就可以通过openssl version
指令直接在控制台查看openssl的版本了。问题就出在接下来make
的时候,新报错是
Failed to build these modules:
_ctypes
or
Failed to build these modules:
_curses
如何解决这个问题的
参考博客一和博客二,归纳一下
需要运行一个全体安装的指令。下面的指令一个都不能少:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get install build-essential python3-dev python3-setuptools python3-pip python3-smbus
sudo apt-get install build-essential libncursesw5-dev libgdbm-dev libc6-dev
sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev
sudo apt-get install libssl-dev openssl
sudo apt-get install libffi-dev
sudo apt-get install libffi-dev libbz2-dev libncursesw5-dev
sudo apt-get install libgdbm-dev python-lzma liblzma-dev libsqlite3-dev
sudo apt-get install tk-dev uuid-dev libreadline-dev
根据博客二,我们有这样的了解:
本人验证,每一个模块对应的安装包名(sudo apt-get install 安装包名)如下
模块_ctypes,安装包名libffi-dev
模块_bz2,安装包名libbz2-dev
模块_curses和_curses_panel,安装包名libncursesw5-dev
模块_dbm和_gdbm,安装包名libgdbm-dev
模块_lzma,安装包名python-lzma和liblzma-dev
模块_sqlite3,安装包名libsqlite3-dev
模块_tkinter,安装包名tk-dev
模块_uuid,安装包名uuid-dev
模块readline,安装包名libreadline-dev
————————————————
版权声明:本文为CSDN博主「shenweihong」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/shenweihong/article/details/123541087
直呼作者大佬,全部执行以后再从make clean
和 ./configure
开始,而不是从make
指令开始,不要偷懒,知道吗?
那么我们依次再执行make clean
->./configure --prefix=/usr/local/python3
-> make -j4
-> make install
(注:./configure
后--prefix
参数是用于指定安装目录的,可根据需要添加)
成功编译,成功安装,最后可以通过指令python --version
指令查看成功安装的python版本。
至此完结撒花!!!