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
相关推荐
群联云防护小杜4 分钟前
深度隐匿源IP:高防+群联AI云防护防绕过实战
运维·服务器·前端·网络·人工智能·网络协议·tcp/ip
惜.己8 分钟前
使用python读取json数据,简单的处理成元组数组
开发语言·python·测试工具·json
Y40900114 分钟前
C语言转Java语言,相同与相异之处
java·c语言·开发语言·笔记
van叶~19 分钟前
Linux探秘坊-------15.线程概念与控制
linux·运维·服务器
都叫我大帅哥1 小时前
Python的Optional:让你的代码优雅处理“空值”危机
python
曾几何时`3 小时前
基于python和neo4j构建知识图谱医药问答系统
python·知识图谱·neo4j
2301_780789664 小时前
UDP和TCP的主要区别是什么
服务器·网络协议·web安全·网络安全·udp
古月-一个C++方向的小白5 小时前
C++11之lambda表达式与包装器
开发语言·c++
写写闲篇儿6 小时前
Python+MongoDB高效开发组合
linux·python·mongodb
沐知全栈开发6 小时前
Eclipse 生成 jar 包
开发语言