Linux安装Python3.11以及解决openssl问题
Linux系统安装Python3
Linux系统:centos7
python版本:3.11
1、查看系统自带python
默认情况下,Linux会自带安装Python,可以运行python --version命令查看。
我们看到Linux中已经自带了Python2.7.5。再次运行python命令后就可以使用python命令窗口了(Ctrl+D退出python命令窗口)。
2、查看Linux默认安装的Python位置
看到/usr/bin/python和/usr/bin/python2都是软链接,/usr/bin/python指向/usr/bin/python2,而/usr/bin/python2最终又指向/usr/bin/python2.7。所以运行python/python2/python2.7是一样的。
3、安装python3
(1)下载sdk
登录https://www.python.org/downloads/source/,找到对应版本(我们以Python-3.11.3为例)。
直接下载(略过步骤(2)文件上传):
wget https://www.python.org/ftp/python/3.11.3/Python-3.11.3.tgz
(2)文件上传
将文件上传到Linux系统的某个目录下,根据自己情况上传,本例上传到了 /usr/local/mydev/python
目录下.
(3)解压
执行 tar -zxvf Python-3.11.3.tgz
命令,将文件解压到当前目录。
(4)准备编译环境
执行如下命令:
yum -y install gcc make zlib zlib-devel libffi libffi-devel readline-devel openssl-devel openssl11 openssl11-devel
(5)安装openssl11,后期的pip3安装网络相关模块需要用到ssl模块。
export CFLAGS=$(pkg-config --cflags openssl11)
export LDFLAGS=$(pkg-config --libs openssl11)
(6)编译安装
执行cd Python-3.11进入解压后的Python-3.11目录下,依次执行如下命令:
./configure --prefix=/usr/local/mydev/python/python3 --with-ssl
make && make install
介绍:
--prefix
:选项指定Python 3的安装目录为/usr/local/mydev/python/python3
,你可以根据自己的需要修改安装目录。(可选)。用法:--prefix=/usr/local/mydev/python/python3
。--enable-optimizations
: 选项启用优化选项,以提高Python解释器的性能。这个选项会使用一些编译器优化和调整来提高Python的执行速度,但是会增加编译时间和内存使用。(可选)--with-openssl
:选项指定使用哪个OpenSSL库版本编译Python。在这个例子中,Python将使用/usr/bin/openssl
路径下的OpenSSL库,这个路径下通常是OpenSSL库的二进制可执行文件的安装位置。(可选)。用法:--with-openssl=/usr/bin/openssl
。--with-ssl
:与--with-openssl
二选一,此方式就是不指定ssl
(7)创建软连接
ln -s /usr/local/mydev/python/python3/bin/python3.11 /usr/local/bin/python3ls
-l /usr/local/bin/
安装成功!当然此时还是可以使用Python2.7.5版本(运行python/python2/python2.7即可)。
(8)配置环境变量
配置环境变量主要是能快速使用pip3安装命令。
执行 vi ~/.bash_profile,打开配置文件,添加如下配置:
# 配置python
vim ~/.bash_profile
export PYTHON_HOME=/usr/local/mydev/python/python3
export PATH=$PYTHON_HOME/bin:$PATH
source ~/.bash_profile
保存退出(:wq),执行source ~/.bash_profile命令使配置生效。执行echo命令,查看是否配置成功,如图:
(9)查看及使用
python3 --version
python3
附:
1、pip镜像源安装
一般:
pip install package_name -i http://pypi.douban.com/simple/
如果出现SSL限制:
pip3 install package_name -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
镜像源
豆瓣 http://pypi.douban.com/simple/
中国科学技术大学http://pypi.mirrors.ustc.edu.cn/simple/
华中科技大学http://pypi.hustunique.com/
清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
山东理工大学:http://pypi.sdutlinux.org/
全局设置
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
#会在pip的根目录上新建pip.ini文件,内容如下
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
#自行添加的
[install]
trusted-host=mirrors.aliyun.com
#可以换成想要的镜像源
2、重新安装openssl
参考文档:python3.11安装, 解决pip is configured with locations that require TLS/SSL问题
原因:系统版本centos7.4,其中openssl的版本为OpenSSL 1.0.2k-fips,而python3.11需要的openssl的版本为1.1.x及以上,需要对openssl进行升级,并重新编译python3.11(yum 安装的openssl 版本都比较低)。
1.下载openssl
wget https://www.openssl.org/source/openssl-3.0.7.tar.gz
tar -zxvf openssl-3.0.7.tar.gz
cd openssl-3.0.7
2.编译安装
./config --prefix=/usr/local/openssl
make
make install
3.备份原配置
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl/ /usr/include/openssl.bak
4.新版配置
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
ln -s /usr/local/openssl/lib64/libssl.so.3 /usr/local/lib64/libssl.so
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
5.写入openssl库文件的搜索路径
echo "/usr/local/openssl/lib64" >> /etc/ld.so.conf
6.使修改后的/etc/ld.so.conf生效
ldconfig -v
7.查看openssl版本
openssl version
8.查看openssl的位置
which openssl
更多推荐
所有评论(0)