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 以保持依赖同步。

相关推荐
2302_805771071 小时前
Day24:DDT+EXCEL数据驱动
功能测试·单元测试·自动化·测试用例·需求分析·web自动化
Dovis(誓平步青云)2 小时前
常用命令藏得太深?怎么做一个快捷命令坞
运维·前端·自动化·音视频·prometheus
看着博客敲代码2 小时前
WorkBuddy 接上 Kali MCP 做自动化渗透:信息收集到初步验证的落地记录
linux·人工智能·安全·网络安全·自动化
志栋智能2 小时前
运维超自动化的知识管理与传承
运维·自动化
jack186893 小时前
OpenClaw 数据采集与自动化应用场景指南
运维·自动化
奈落244 小时前
规则引擎还是大模型?AI 工作流与传统自动化的分工边界:确定性流程照旧,‘每次都不太一样‘的知识型工作才交给 AI
运维·人工智能·自动化·大模型·工作流·ai 办公
工业传感笔记4 小时前
自动化产线传感器误报率从 15% 降至 0.3%:现场改造流程、参数调优与适用边界
自动化
liliangcsdn4 小时前
如何用DrissionPage进行网页自动化
大数据·自动化
陈年老古董4 小时前
PyQt5 入门指南:环境搭建、PyCharm 外部工具配置与登录界面实战
开发语言·qt·pycharm