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

相关推荐
电子_咸鱼40 分钟前
动态规划经典题解:单词拆分(LeetCode 139)
java·数据结构·python·算法·leetcode·线性回归·动态规划
星释1 小时前
Rust 练习册 10:多线程基础与并发安全
开发语言·后端·rust
WX-bisheyuange5 小时前
基于Spring Boot的教师个人成果管理系统的设计与实现
java·spring boot·后端
chxii5 小时前
spring boot 获取HTTP 请求参数
spring boot·后端·http
桦说编程7 小时前
Guava 迭代器增强类介绍
java·后端·设计模式
235168 小时前
【JVM】Java为啥能跨平台?JDK/JRE/JVM的关系?
java·开发语言·jvm·spring boot·后端·spring·职场和发展
风轻扬7778 小时前
SQLAlchemy2.0使用
python·sqlalchemy·orm框架
潘帕斯的雄鹰8 小时前
直观理解注意力机制
python·transformer·注意力机制·自注意力机制
打酱油程序员8 小时前
Python数据挖掘详细学习指南
python
courtfu8 小时前
Plugin ‘mysql_native_password‘ is not loaded`
java·后端