将服务器python版本从3.6升级到3.9,操作步骤记录如下:
1. 保证相关依赖全部安装
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
在安装过程中发现gcc 4的版本不能成功完成安装,顺便把gcc也升级到了8:
yum install centos-release-scl
yum install devtoolset-8
scl enable devtoolset-8 bash
2. 解压安装包进入目录
tar -xvf Python-3.9.10.tgz
cd Python-3.9.10
3. 配置相关参数生成Makefile
./configure --with-ssl=/usr/bin/openssl --prefix=/usr/local/python3.9 --enable-optimizations
-
–with-ssl=/usr/bin/openssl: 这个选项指定了SSL库的路径。在这种情况下,SSL库的路径被设置为/usr/bin/openssl。SSL库用于支持加密通信。
-
–prefix=/usr/local/python3.9: 这个选项指定了Python安装的目标路径。在这种情况下,Python将被安装在/usr/local/python3目录下。
-
–enable-optimizations: 这个选项启用了优化标志,以提高Python的性能。它会在构建过程中应用一些编译器优化选项,以加速Python的执行速度。
4. 编译
make -j 4 && make altinstall
-
make -j 4: 这个命令使用make工具来编译Python源代码。-j 4选项指定了并行编译的线程数。在这种情况下,使用了4个线程来加快编译过程。您可以根据系统的处理器核心数来调整线程数。
-
&&: 这个符号用于将两个命令连接起来。它表示只有在前一个命令成功执行后,才会执行后面的命令。
-
make altinstall: 这个命令用于安装Python。altinstall选项与install选项类似,但它会将Python安装为一个可选的替代版本,而不是覆盖系统默认的Python版本。这样可以避免对系统的Python环境造成破坏。
5. 建立软连接
ln -s /usr/local/python3.9/bin/python3.9 /usr/bin/python3.9
ln -s /usr/local/python3.9/bin/pip3.9 /usr/bin/pip3.9
6. 测试
完成上述操作后,执行python3.9
,并import ssl
,不报错说明装好了
7. 创建虚拟环境
如果之前安装过virtualenv,不需要在3.9中再次安装,可以直接使用并制定python版本即可
virtualenv -p python3.9 new_env
8. 替换老的虚拟环境
mv old_env old_env_bak
mv new_env old_env
光执行这两步是没用的,激活activate后无法正常使用python,需要修改old_env/bin/activate
文件,此时,该文件中应该有一行VIRTUAL_ENV="/path/to/new_env"
,将其修改为VIRTUAL_ENV="/path/to/old_env"
,然后激活activate就能正常使用了。
9. 注
8中的操作不建议这么做,By default virtualenv does not support the renaming of environments. It is safer to just delete the virtualenv directory and create a new one with the correct name. 以上。