携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第11天,点击查看活动详情
最近在Centos系统上需要安装一个python3版本,查看了下centos版本;使用以下命令查询版本
cat /etc/redhat-release
发现版本比较低,是6.10的
查看python版本
使用命令
python -V 或直接输入 python 回车
不出意料,目前的版本是Python2.6.6; 使用命令
whereis python
查看下pythonw安装位置,发现其中python还有个别名是python2
需要升级一下了 目前python最新稳定版本是3.10,所有还是安装一个python3版本,并且保留python2版本
安装python3.10
-
安装依赖包: 输入以下命令,安装编码所需依赖
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
-
下载python3.10.5版本
-
解压编译 执行以下命令解压xz文件
xz -d Python-3.10.5.tar.xz
执行以下命令解压tar文件
tar -xf Python-3.10.5.tar
依次执行以下命令:
cd Python-3.10.5
./configure prefix=/usr/local/python3 make && make install
安装完成,配置软链
ln -s /usr/local/python3/bin/python3.10 /usr/bin/python3 ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
验证是否安装成功;输入
python3 -V
安装第三方包moviepy
使用pip3安装moviepy,执行命令:
pip3 install moviepy
提示以下错误信息:
Could not fetch URL pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping
根据提示信息,猜测可能是openssl的问题,输入命令查看版本;
openssl version
发现版本是1.0;
-
出现问题的主要原因是: 在Python3.7之后的版本,依赖的openssl,必须要是1.1或者1.0.2之后的版本,或者安装了2.6.4之后的libressl。
-
解决方式: 编译安装openssl官网1.0.2或者1.1之后的openssl包既可;
安装openssl1.1.1
下载1.1.1h
wget www.openssl.org/source/open… --no-check-certificate
解压:
tar zxvf openssl-1.1.1h.tar.gz
编译安装:
cd openssl-1.1.1h ./config --prefix=/usr/local/ssl1.1.1 --openssldir=/usr/local/ssl1.1.1 make && make install
设置环境变量
export LD_LIBRARY_PATH=/usr/local/ssl1.1.1/lib:$LD_LIBRARY_PATH
重新编译python3:
./configure --with-openssl=/usr/local/ssl1.1.1 --prefix=/usr/local/python3 make && make install