PyCharm 虚拟环境与 Jenkins 自动化部署实践

1. 引言

在 Python 项目开发与交付过程中,环境隔离和自动化部署是两个关键环节。PyCharm 编写代码提交到 Git 远程服务器时,一般不会包含 Python 环境和第三方依赖包,因此需要借助虚拟环境来管理项目依赖;而在持续集成阶段,Jenkins 负责拉取代码、创建虚拟环境、安装依赖并运行测试脚本。本文围绕这两部分展开,介绍从本地虚拟环境创建到 Jenkins 自动化构建的完整流程。

2. 创建 Python 虚拟环境

虚拟环境可以为每个项目提供独立的 Python 运行环境,避免不同项目之间的依赖冲突。执行以下命令可直接创建虚拟环境,使用系统环境的 Python 来创建虚拟环境,后面的路径指的是虚拟环境创建的目录,如果没有会自动创建目录:

bash 复制代码
python -m venv D:/venv

创建之后还不能直接使用,需要执行一下里面的 activate 文件来激活虚拟环境。激活后,当前终端进入一个全新的虚拟环境,此时环境中没有安装任何第三方依赖包。

3. 使用 requirements.txt 管理依赖

requirements.txt 是一个文件,它记录了 Python 项目的所有依赖项,包含依赖包的名称和指定的版本号(使用 ==、>=、<= 指定)。在项目中使用以下命令生成 requirements.txt 文件:

bash 复制代码
pip freeze > requirements.txt

在虚拟环境中,使用以下命令根据 requirements.txt 文件为当前项目的虚拟环境安装相关依赖包:

bash 复制代码
pip3 install -r requirements.txt

requirements.txt 文件通常放在项目根目录。如果项目所需要的依赖包有变化,也应该使用 pip freeze > requirements.txt 命令来更新这个文件,以便在其它地方保持依赖包的同步。

4. Jenkins 构建与部署

Jenkins 构建时,需要部署 Python 环境、安装相关依赖包、运行 run.py 文件、使用 Allure 生成测试报告,并发送邮件。下面分别给出 Windows 和 Ubuntu 两种环境下的构建脚本。

4.1 Windows 环境构建脚本

bat 复制代码
:: Set the project root directory.
:: 设置项目目录
D:\soft\apache-tomcat-10.0.17\webapps\jenkins\workspace\test
set PYTHONPATH=%WORKSPACE%
:: Set the basic python binary and virtual environment location.
:: 设置基础解释器位置和虚拟环境目录
set PYTHON_VENVS=%PYTHONPATH%\venv
:: Check and create virtual environment.
:: 检查和创建当前项目的虚拟环境
if not exist %PYTHON_VENVS% (mkdir %PYTHON_VENVS%)
set VENV=%PYTHON_VENVS%
if not exist %VENV%\pyvenv.cfg (python -m venv %VENV%)
:: 激活虚拟环境、安装依赖、运行脚本、发送邮件
cd %VENV%\Scripts
activate && cd ../.. && pip3 install -r requirements.txt && python run.py

4.2 Ubuntu 环境构建脚本

bash 复制代码
# Set the project root directory.
# 设置项目目录
export PYTHONPATH=$WORKSPACE;
Set the basic python binary and virtual environment location.
设置基础解释器位置和虚拟环境目录
PYTHON_BASIC_BINARY=/usr/bin/python3;
PYTHON_VENVS=$PYTHONPATH/venv
Check and create virtual environment.
检查和创建当前项目的虚拟环境
mkdir -p $PYTHON_VENVS;
chmod 0755 $PYTHON_VENVS;
VENV=$PYTHON_VENVS/venv_$JOB_BASE_NAME;
if [ ! -f "$VENV/pyvenv.cfg" ]; then
$PYTHON_BASIC_BINARY -m venv $VENV;
$VENV/bin/python -m pip install --upgrade pip >/dev/null 2>&1;
$VENV/bin/python -V;
$VENV/bin/pip -V;
fi
Activate to join the virtual environment.
激活虚拟环境加入环境变量
. $VENV/bin/activate;
Update dependencies.
安装依赖
pip3 install -r requirements.txt;
Execute the main.
执行脚本
python run.py;

5. 构建后操作与测试报告

在 Jenkins 的「构建后操作」中,可以配置以下内容:

  • Results:生成 Allure 的测试过程数据。
  • Reports:生成网页形式的测试报告。

点击保存后,即可进行构建。整个构建流程为:Ubuntu 构建 → 创建 Python 虚拟环境 → 运行脚本。

6. 总结

通过虚拟环境与 requirements.txt 的组合,可以保证项目依赖在本地和 Jenkins 构建环境中保持一致;再配合 Jenkins 的自动化脚本,即可实现从代码提交到测试报告生成的全流程自动化。建议在实际项目中根据操作系统差异选择对应的构建脚本,并定期更新 requirements.txt 以保持依赖同步。

相关推荐
镜子AI6 小时前
镜子AI 技术复盘:三条自动化链路上的“停止条件“设计
运维·人工智能·自动化
Jenni see12 小时前
服装厂裁剪自动化怎么搞?自动铺布+激光裁床+六轴机械手裁片分拣,省料省人的实战指南
运维·自动化
是真的小外套17 小时前
网络安全实战第17期:自动化检测误报漏报真相
安全·web安全·自动化
汤米粥17 小时前
cmd手动创建的Django项目怎么用社区版Pycharm运行起来
python·pycharm·django
天远API18 小时前
零信任架构实战:基于天远劳动仲裁信息查询构建自动化灵活用工劳务派遣人员准入背调网关
运维·人工智能·架构·自动化
GJGCY18 小时前
金融AI Agent安全如何评估?数据出站、身份映射、参数绑定与审计追踪机制
人工智能·经验分享·安全·ai·金融·自动化·智能体
快乐的熊二19 小时前
每天自动领积分:Trae CN + WorkBuddy 签到自动化
运维·自动化
znnnk20 小时前
【Fetch】AI 自动化中的应用——从接口请求到数据获取
运维·自动化
2501_9272835820 小时前
同样是自动化立库,堆垛机和四向车差别在哪里?
运维·自动化