Menu

Centos7 配置GCC9和Python3.12

部署工具和依赖

1:安装 “Development tools” 软件组,其中包含编译和开发工具

yum -y groupinstall Development tools

如果提示没有可用包就先执行以下命令:

yum clean all

2:安装 Python 编译和运行所需的开发库和依赖项

yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

3:安装 libffi 开发库和 zlib1g-dev 包,它们是 Python 编译和运行的额外依赖项

yum install -y libffi-devel zlib1g-dev

4:安装所有以 “zlib” 开头的软件包,以满足可能的 zlib 依赖项 

yum install zlib* -y

安装OpenssL

1.下载openssL1.1.1版本

wget https://www.openssl.org/source/openssl-1.1.1.tar.gz

2.解压压缩包

tar -zxvf openssl-1.1.1.tar.gz

3.进入openssl目录

cd openssl-1.1.1

4. 编译并安装OpenssL

./config shared zlib

make && make install

!!!!安装的路径为:/usr/local/bin/openssl!!!!

PS:编译安装时间比较久,并且不建议使用多线程编译,为了稳定请使用单线程编译即可

5.编译完成,进行替换原有的Openssl

注:如果有程序需要依靠旧版openssl运行,请先备份完旧版openssl后再执行以下命令!!!

rm -rf /usr/lib64/libssl.so
rm -rf /usr/lib64/libcrypto.so
ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so
ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so
ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

6:测试是否安装完成:

用openssl version命令来查询

如果输出为 OpenSSL 1.1.1 11 Sep 2018 则代表安装成功

安装python3.10.1前准备 (我在官网下载的是12的包)

1:下载Python压缩包(你想选择其他版本就更改其中的数字就行,但是后面的教程你要注意你的文件名称)

wget https://www.python.org/ftp/python/3.10.1/Python-3.10.1.tgz

2:解压文件夹

tar -xvf Python-3.10.1.tgz

3:进入python目录

cd Python-3.10.1

4: 创建 Python 3.10 的安装目录

mkdir /usr/local/python3

升级 GCC 版本

1:安装 CentOS 软件集和编译工具链

yum install -y centos-release-scl
yum install -y devtoolset-8-toolchain

//下面是gcc9

yum -y install centos-release-scl gcc gcc-c++
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
echo “source /opt/rh/devtoolset-9/enable” >> /etc/profile
source /etc/profile

2:启用新的工具链

scl enable devtoolset-8 bash

编译并安装 Python 3.10

1:进入到python页面后先不急进行编译安装先,在你python的目录下找到名为:Modules,的文件夹并进入,然后找到名为Setup,的文件进行编辑

vim Modules/Setup

2:位置大概在212-214行那,将注释取消掉

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

3:大概就是这三行,取消掉注释,然后保存并退出。

4:运行 Python 配置脚本,配置编译参数

./configure –prefix=/usr/local/python3 –with-openssl=/usr/local/bin/openssl –enable-optimizations

5:altinstall 和install,二者的一个重要区别在于,后者会创建符号链接,将 python3 等命令链接到正在安装的新版本 Python3 上,这可能会对系统造成破坏

make & make install

这个编译的时间比较久,长则半小时,慢则10分钟

出现图片这个不是报错!不是报错!不是报错!是运行成功并安装完成了,可以继续接下来的步骤

删除一些临时文件(删除源代码(C\C++ code)生成的执行文件和所有的中间目标文件 

make clean

创建软链接以将 Python 3.10 与 python3 和 pip3 关联

1:备份系统默认的 /usr/bin/python3 可执行文件

mv /usr/bin/python3 /usr/bin/python3.bak

2:创建软链接,将 /usr/local/python3/bin/python3 关联到 /usr/bin/python3,使 python3 命令可用

ln -s /usr/local/python3/bin/python3 /usr/bin/python3

3:备份系统默认的 /usr/bin/pip 可执行文件

mv /usr/bin/pip3 /usr/bin/pip3.bak

注:系统可能会报找不到这个文件,这个没什么关系不用管!!!!!!!

4: 创建软链接,将 /usr/local/python3/bin/pip3 关联到 /usr/bin/pip3,使 pip3 命令可用

ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

5:部署完成接下来验证一下python是否正常

向 /etc/ld.so.conf 文件中添加新的库路径

echo “/usr/local/python3/lib” >> /etc/ld.so.conf

ldconfig -v

特别补充:

安装 tkinter模块 的依赖包,下载地址: Tcl – Browse /Tcl at SourceForge.net

进入目录
cd /data/recycle
下载两个安装包
curl -o tcl8.6.13-src.tar.gz https://newcontinuum.dl.sourceforge.net/project/tcl/Tcl/8.6.13/tcl8.6.13-src.tar.gz

curl -o tk8.6.13-src.tar.gz https://phoenixnap.dl.sourceforge.net/project/tcl/Tcl/8.6.13/tk8.6.13-src.tar.gz

安装tcl
tar zxf tcl8.6.13-src.tar.gz
cd tcl8.6.13/unix/
./configure
make -j 4
make install

安装tk
cd /data/recycle
tar zxf tk8.6.13-src.tar.gz
cd tk8.6.13/unix/
./configure
make -j 4
make install

配置环境变量
export LD_LIBRARY_PATH=/usr/local/lib
export TCLTK_CFLAGS=”-I/usr/local/include”
export TCLTK_LIBS=”-L/usr/local/lib -ltcl8.6 -L/usr/local/lib -ltk8.6″

python虚拟环境

12.2. 创建虚拟环境
The module used to create and manage virtual environments is called venv. venv will install the Python version from which the command was run (as reported by the –version option). For instance, excuting the command with python3.12 will install version 3.12.

要创建虚拟环境,请确定要放置它的目录,并将 venv 模块作为脚本运行目录路径:

python -m venv tutorial-env
这将创建 tutorial-env 目录,如果它不存在的话,并在其中创建包含 Python 解释器副本和各种支持文件的目录。

虚拟环境的常用目录位置是 .venv。 这个名称通常会令该目录在你的终端中保持隐藏,从而避免需要对所在目录进行额外解释的一般名称。 它还能防止与某些工具所支持的 .env 环境变量定义文件发生冲突。

创建虚拟环境后,您可以激活它。

在Windows上,运行:

tutorial-env\Scripts\activate
在Unix或MacOS上,运行:

source tutorial-env/bin/activate
(这个脚本是为bash shell编写的。如果你使用 csh 或 fish shell,你应该改用 activate.csh 或 activate.fish 脚本。)

激活虚拟环境将改变你所用终端的提示符,以显示你正在使用的虚拟环境,并修改环境以使 python 命令所运行的将是已安装的特定 Python 版本。 例如:

$ source ~/envs/tutorial-env/bin/activate
(tutorial-env) $ python
Python 3.5.1 (default, May 6 2016, 10:59:36)

import sys
sys.path
[”, ‘/usr/local/lib/python35.zip’, …,
‘~/envs/tutorial-env/lib/python3.5/site-packages’]

要撤销激活一个虚拟环境,请输入:

deactivate
到终端。

Categories:   Garfield's Diary

Comments