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
相关推荐
@游子3 分钟前
Python类属性与魔术方法全解析
开发语言·python
此生只爱蛋16 分钟前
【Linux】正/反向代理
linux·运维·服务器
yuhaiqun198924 分钟前
Typora 技能进阶:从会写 Markdown 到玩转配置 + 插件高效学习笔记
经验分享·笔记·python·学习·学习方法·ai编程·markdown
废春啊35 分钟前
前端工程化
运维·服务器·前端
眠りたいです1 小时前
现代C++:C++11并发支持库
开发语言·c++·多线程·c++11·c++并发支持库
爱潜水的小L1 小时前
自学嵌入式day34,ipc进程间通信
linux·运维·服务器
小灰灰搞电子1 小时前
Rust可以取代C++么?
开发语言·c++·rust
我送炭你添花1 小时前
Pelco KBD300A 模拟器:06+2.Pelco KBD300A 模拟器项目重构指南
python·重构·自动化·运维开发
Swizard1 小时前
别再只会算直线距离了!用“马氏距离”揪出那个伪装的数据“卧底”
python·算法·ai
cat三三1 小时前
java之异常
java·开发语言