基于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进行打包。

相关推荐
音元系统几秒前
Copilot 在 VS Code 中的免费替代方案
python·github·copilot
超龄超能程序猿12 分钟前
(5)机器学习小白入门 YOLOv:数据需求与图像不足应对策略
人工智能·python·机器学习·numpy·pandas·scipy
方圆想当图灵37 分钟前
ScheduledFutureTask 踩坑实录
后端
全栈凯哥1 小时前
16.Spring Boot 国际化完全指南
java·spring boot·后端
M1A11 小时前
Java集合框架深度解析:LinkedList vs ArrayList 的对决
java·后端
31535669132 小时前
Springboot实现一个接口加密
后端
cooldream20092 小时前
Python 包管理新时代:深入了解 `uv` 的使用与实践
python·uv·包管理器
之歆2 小时前
Python-魔术方法-创建、初始化与销毁-hash-bool-可视化-运算符重载-容器和大小-可调用对象-上下文管理-反射-描述器-二分-学习笔记
笔记·python·学习
胖达不服输2 小时前
「日拱一码」025 机器学习——评价指标
人工智能·python·机器学习·评价指标
brave_zhao4 小时前
JavaBeanUtils javaBean转map, 实体类转map,实体集合转List<Map>
linux·windows·python