CentOS7部署Python环境

python生产环境构建

在线上环境中 python环境 的设置也是尤为重要的, 这里主要介绍单体应用的环境设置, 容器环境只需要采用相应镜像即可; 在线上环境中同样采用 virtualenv 来针对不同的项目及异步程序进行环境的设定, 根据项目根目录中提供的 requirements.txt 包版本控制文件进行依赖项的安装及同步; 为了更好的对 python版本 的控制, 采用源码部署是通用的方式;

下载python安装包

bash 复制代码
下载安装包

$ yum -y groupinstall "Development Tools"
$ 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)
$ source /etc/profile

$wget https://www.python.org/ftp/python/3.12.5/Python-3.12.5.tar.xz
$ tar xf Python-3.12.5.tar.xz -C /opt/
$  cd /opt/Python-3.12.5/
$ ./configure --prefix=/usr/local/python312 && make && make install

$ vim /etc/profile.d/python312.sh
export PATH=$PATH:/usr/local/python312/bin
$ source /etc/profile   让配置立即生效


$ python3
Python 3.12.5 (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关联

bash 复制代码
# 设定 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
# - s 创建软连接
# - f 如果之前有,那么就删除,然后重新创建,相当于覆盖
$ pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/web/simple

配置虚拟环境

bash 复制代码
# 设定虚拟环境
$ pip install virtualenv

$ mkdir -p /myenv/envs/apps	 // 创建各项目存放虚拟环境的目录
$ mkdir -p /myenv/apps			 // 创建存放项目的目录

$ virtualenv -p $(which python3) /myenv/envs/apps/project_name		// 创建虚拟环境
// python3.12 -m venv /myenv/envs/apps/myenv


$ source /myenv/envs/apps/project_name/bin/activate				    // 激活切换虚拟环境
(project_name) $  python
Python 3.12.5 (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()

(project_name) $ pip install ipython		// 安装开发工具 IPython

若要退出虚拟环境:
deactivate
相关推荐
强化学习与机器人控制仿真6 分钟前
openpi 入门教程
开发语言·人工智能·python·深度学习·神经网络·机器人·自动驾驶
爱学习的章鱼哥18 分钟前
计算机网络|| 常用网络命令的作用及工作原理
linux·服务器·计算机网络
zm25 分钟前
网络编程epoll和udp
服务器·网络·数据库
野犬寒鸦28 分钟前
Linux常用命令详解(下):打包压缩、文本编辑与查找命令
linux·运维·服务器·数据库·后端·github
明月看潮生42 分钟前
青少年编程与数学 02-019 Rust 编程基础 08课题、字面量、运算符和表达式
开发语言·青少年编程·rust·编程与数学
是垚不是土1 小时前
探秘高可用负载均衡集群:企业网络架构的稳固基石
运维·服务器·网络·云原生·容器·架构·负载均衡
BuLingLings1 小时前
vue3+flask+sqlite前后端项目实战
python·sqlite·flask
skywalk81631 小时前
在一个FreeBSD的控制台,当移动鼠标时,就会有字符发生,这是怎么回事:35;62;18m35;60;
服务器·计算机外设·freebsd
天天打码1 小时前
Rspack:字节跳动自研 Web 构建工具-基于 Rust打造高性能前端工具链
开发语言·前端·javascript·rust·开源
Petrichorzncu1 小时前
Lua再学习
开发语言·学习·lua