在线上环境中 python环境
的设置也是尤为重要的, 这里主要介绍单体应用的环境设置, 容器环境只需要采用相应镜像即可; 在线上环境中同样采用 virtualenv
来针对不同的项目及异步程序进行环境的设定, 根据项目根目录中提供的 requirements.txt
包版本控制文件进行依赖项的安装及同步; 为了更好的对 python版本
的控制, 采用源码部署是通用的方式;
下载python安装包
我们此处以python3.12.6为例。(为了稳定起见,不建议安装最新版本)
下载好安装包拖进Linux可以或者直接wget+链接
下载安装包
$ yum -y groupinstall "Development Tools"
# 自动安装一组用于软件开发的工具和库,通常包括编译器(如 gcc)、
调试器(如 gdb)和其他开发相关的实用程序。
$ yum -y install gcc zlib zlib-devel libffi libffi-devel readline-devel
openssl-devel openssl11 openssl11-devel sqlite-devel
//安装一些编译和开发所需的库和工具和依赖
$ vim /etc/profile.d/openssl11.sh
export CFLAGS=$(pkg-config --cflags openssl11)
export LDFLAGS=$(pkg-config --libs openssl11)
//设置 OpenSSL 1.1 的环境变量
$ source /etc/profile
//刷新
$ wget https://www.python.org/ftp/python/3.12.6/Python-3.12.6.tar.xz
$ tar xf Python-3.12.6.tar.xz -C /opt/
$ cd /opt/Python-3.12.6/
$ ./configure --prefix=/usr/local/python312 && make && make install
//编译安装
$ vim /etc/profile.d/python312.sh
export PATH=$PATH:/usr/local/python312/bin
//将Python 3.12 的可执行路径添加到系统的 PATH 环境变量中
$ source /etc/profile //让配置立即生效
$ python3
Python 3.12.6 (main, Dec 27 2022, 12:20:43) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
优化配置,配置pip源及pip3和pip关联
# 设定 mirros.ustc.edu.cn pip源
$ pip3 install -i https://mirrors.ustc.edu.cn/pypi/web/simple pip -U
$ ln -sf /usr/local/python312/bin/pip3 /usr/local/python312/bin/pip
$ pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/web/simple
配置虚拟环境
# 设定虚拟环境
$ pip install virtualenv
$ mkdir -p /myenv/envs/apps // 创建各项目存放虚拟环境的目录
$ mkdir -p /myenv/apps // 创建存放项目的目录
$ virtualenv -p $(which python3) /myenv/envs/apps/myenv1 // 创建虚拟环境
// python3.12 -m venv /myenv/envs/apps/myenv1 //两条命令都可以
$ source /myenv/envs/apps/myenv1/bin/activate // 激活切换虚拟环境
(myenv1) $ python
Python 3.12.6 (main, Aug 14 2024, 15:52:27) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
(myenv1) $ pip install ipython // 安装开发工具 IPython
若要退出虚拟环境:
deactivate