基于Rye的Django项目通过Pyinstaller用Github工作流简单打包

前言

Rye的介绍和安装

Ryehttps://rye.astral.sh/Rye 完整使用教程_安装rye-CSDN博客https://blog.csdn.net/zhenndbc/article/details/144544692

正文

项目建立

配置好环境后

新建文件夹

新建文件夹,进入项目

初始化

复制代码
rye init

下载依赖

复制代码
rye sync

pycharm 打开项目

复制代码
pycharm .

安装Django

复制代码
rye add django pyinstaller

在src目录下新建Django项目

复制代码
django-admin startproject rye_dj

修改文件pyproject.toml文件如下

复制代码
[project]
name = "rye-dj-demo"
version = "0.1.0"
description = "Add your description here"
authors = [
    { name = "qe-present", email = "2664481691@qq.com" }
]
dependencies = [
    "django>=5.1.6",
    "pyinstaller>=6.12.0",
]
readme = "README.md"
requires-python = ">= 3.13"

[tool.rye.scripts]
dev= "python manage.py runserver"
build="pyinstaller -F manage.py"

增加了dev脚本和bulid脚本。

进入Django项目。

运行项目

Pyinstaller 打包

暂时什么都不写

复制代码
rye run build

运行打包后的manage.exe

复制代码
manage.exe runserver --noreload

笔者是通过powershell 7 运行的命令,有所不同

成功。

Github工作流yaml文件的书写

总体流程

1、读取仓库的代码

2、安装rye

3、安装依赖

4、打包

5、上传

新建相关文件及文件夹

1、在根目录下新建.github文件夹

2、在.github文件夹新建workflows文件夹

3、在workdflows文件夹新建rye-dj.yaml文件

rye-dj.yaml内容如下

复制代码
name: rye-dj  # 工作流程名称
on: push  # 触发条件 push触发
jobs:
    build:  # 任务名称
        runs-on: window-latest  # 运行环境
        steps:
        - name: 读取仓库代码
          uses: actions/checkout@v4

        - name: 安装rye
          uses: eifinger/setup-rye@v4
          with:
            enable-cache: true
            version: 'latest'

        - name: 安装依赖
          run: rye sync

        - name: 打包
          run: |
            cd src/rye_dj
            rye run build

        - name: 上传
          uses: actions/upload-artifact@v4
          with:
            name: dist
            path: src/rye_dj/dist/manage.exe

工作流打包结果

下载运行,项目什么都没有写,因此,没有报错。以后需要配置的项目再写一篇文章。

说明一点

为什么要在src目录下新建Django项目?

亲身实践,如果不这样,会报错,不妨试试。

总结

主要是在rye环境下,github工作流对Django通过pyinstaller进行打包。

相关推荐
tkevinjd1 小时前
MiniCode 项目详解6:原项目控制系统的10个缺陷(已修复)
python·llm·agent
dNGUZ7UGj2 小时前
10分钟完成第一个Python小游戏
python·django
没有梦想的咸鱼185-1037-16632 小时前
AI-Python机器学习与深度学习技术:CNN/Transformer/扩散模型、SHAP可解释及Hermes智能体自动化
人工智能·python·深度学习·机器学习·chatgpt·cnn·transformer
霸道流氓气质3 小时前
SpringBoot中通用工具类库(Utils)封装与使用实践
spring boot·后端·python
Draina5 小时前
CBC填充预言攻击-CBC Padding Oracle Crypto Attack
python·安全·web安全·网络安全·密码学·安全性测试
Angel Q.5 小时前
特征提取 | DINO 到 DINOv3
图像处理·python
不如语冰6 小时前
AI大模型入门-pytorch-张量2 tensor创建
python
NPE~6 小时前
[AI]Agent开发——ADK框架使用
人工智能·python·ai·教程·adk·agent开发
矮个史蒂芬6 小时前
统计verilog .v文件中output 的bit数
python