本帖最后由 axiuge 于 2024-4-28 15:21 编辑
我经常用python写程序,每次编译都要手动去输入命令打包成exe。
次数多了就烦了,我就用bat写了一个脚本。双击自动编译。
#PyInstaller编译
[Bash shell] 纯文本查看 复制代码 @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
[Bash shell] 纯文本查看 复制代码 @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
#一键删除
[Bash shell] 纯文本查看 复制代码 @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
[Python] 纯文本查看 复制代码 @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
[/mw_shl_code]
|