axiuge 发表于 2024-1-24 12:21

python一键编译脚本(新增一键删除脚本)

本帖最后由 axiuge 于 2024-4-28 15:21 编辑

我经常用python写程序,每次编译都要手动去输入命令打包成exe。
次数多了就烦了,我就用bat写了一个脚本。双击自动编译。

#PyInstaller编译
@echo off
chcp 65001 > nul

rem 遍历当前目录下的 .py 文件
for %%f in (*.py) do (
    echo 正在将 %%f 编译成可执行文件...

    rem 使用pyinstaller创建独立可执行文件并指定当前目录下的.ico图标
    for %%i in (*.ico) do (
      pyinstaller --noconsole --onefile --icon="%%i" "%%f"
      rem 仅使用第一个找到的 .ico 文件
      exit /b
    )
)

echo 编译完成。
pause


#Nuitka编译.bat
@echo off
chcp 65001 > nul

rem 遍历当前目录下的 .py 文件
for %%f in (*.py) do (
    echo 正在将 %%f 编译成可执行文件...

    rem 使用Nuitka创建独立可执行文件并指定当前目录下的.ico图标
    for %%i in (*.ico) do (
      nuitka --onefile --icon="%%i" "%%f"
      rem 仅使用第一个找到的 .ico 文件
      exit /b
    )
)

echo 编译完成。
pause


#一键删除

@echo off
setlocal enabledelayedexpansion

rem 删除当前文件夹下的任意文件名的 .build 文件夹及其所有内容
for /d %%i in (*.build) do (
    rmdir /s /q "%%i"
)

rem 删除当前文件夹下的任意文件名的 .build 文件
del /s /q *.build


rem 删除文件夹 "dist"
for /d %%i in (dist) do (
    rmdir /s /q "%%i"
)

rem 删除文件后缀为 ".spec" 的文件
for %%i in (*.spec) do (
    del "%%i"
)

rem 删除文件后缀为 ".build" 的文件
for %%i in (*.build) do (
    del "%%i"
)

rem 删除文件后缀为 "error_log.txt" 的文件
for %%i in (*error_log.txt) do (
    del "%%i"
)

rem 删除 .exe 文件
for %%i in (*.exe) do (
    del "%%i"
)

rem 删除 .cmd 文件
for %%i in (*.cmd) do (
    del "%%i"
)

rem 删除 .build 文件夹
rmdir /s /q ".build"

endlocal


@echo off

REM 设置 Conda 环境名称
set ENV_NAME=my_env

REM 创建 Conda 环境
echo 创建 Conda 环境:%ENV_NAME%
conda create -y -n %ENV_NAME% python

REM 激活 Conda 环境
echo 激活 Conda 环境:%ENV_NAME%
call conda activate %ENV_NAME%

REM 安装依赖
echo 安装依赖...
pip install -r requirements.txt

REM 打包
echo 打包应用程序...
python setup.py sdist

REM 关闭 Conda 环境
echo 关闭 Conda 环境:%ENV_NAME%
call conda deactivate

echo 打包完成!
pause






axiuge 发表于 2024-1-25 11:37

吖力锅 发表于 2024-1-24 17:08
怎么不行呢 bat版的,可以上传个现成的吗?

因为编译的时候需要你在编译的目录放一个ico文件做为软件图标。我做了检测的判断。你可能是没放ico图标。

alongzhenggang 发表于 2024-1-24 16:39

很好重复操作就想找个省事的

吖力锅 发表于 2024-1-24 16:57

我擦,我喜欢,我咋没想到谢谢搞呢

wasm2023 发表于 2024-1-24 17:03

楼主能否搞一个自动创建conda环境,自动安装依赖,然后自动打包的

吖力锅 发表于 2024-1-24 17:08

怎么不行呢 bat版的,可以上传个现成的吗?

xiaoxiaoyiyu 发表于 2024-1-24 17:16

sztoplon 发表于 2024-1-24 17:33

感谢分享,收藏一下

szjszj 发表于 2024-1-24 17:56

谢谢分享,我看你写的Nuitka编译和Pyinstaller编译的bat内容一样呀?

turmasi1234 发表于 2024-1-25 07:30

真是牛逼,方便多了

baqycl 发表于 2024-1-25 08:37

楼主, 两个编译代码是一样的, 是不是贴错了?
页: [1] 2
查看完整版本: python一键编译脚本(新增一键删除脚本)