测试并完成windwos环境打包,这次真的测试,保证可以运行了

This commit is contained in:
2026-02-05 15:25:59 +08:00
parent 0c66c7d6f6
commit 1f3b0ed365
7 changed files with 72 additions and 63 deletions

2
.gitignore vendored
View File

@@ -2,3 +2,5 @@ db/**
**/venv/** **/venv/**
**/dist/** **/dist/**
**/build/** **/build/**
*.spec
**/jm_/**

View File

@@ -1 +0,0 @@
test

51
windows/build.py Normal file
View File

@@ -0,0 +1,51 @@
#打包脚本
import subprocess, os, sys
# 建立venv虚拟环境
print("建立venv虚拟环境")
subprocess.run("python -m venv venv", shell=True)
# 安装requirements.txt中的库
print("安装requirements.txt中的库")
subprocess.run("venv\\Scripts\\pip.exe install -r ..\\requirements.txt", shell=True)
# 列出pip安装的库
print("列出pip安装的库")
subprocess.run("venv\\Scripts\\pip.exe list", shell=True)
# pyinstaller打包程序
print("pyinstaller打包中")
print("打包main.py")
subprocess.run("venv\\Scripts\\pyinstaller.exe --onefile command\\main.py", shell=True)
print("打包help.py")
subprocess.run("venv\\Scripts\\pyinstaller.exe --onefile command\\help.py", shell=True)
print("打包Download.py")
subprocess.run("venv\\Scripts\\pyinstaller.exe --onefile command\\Download.py", shell=True)
print("打包version.py")
subprocess.run("venv\\Scripts\\pyinstaller.exe --onefile command\\version.py", shell=True)
# 清理build和*.spec文件
print("清理build和*.spec文件")
subprocess.run("RMDIR build /s /q", shell=True)
print("正在清理*.spec文件")
subprocess.run("DEL main.spec version.spec Download.spec help.spec", shell=True)
# 重命名dist为jm_
print("重命名dist为jm_")
dir_path = os.path.dirname(os.path.abspath(__file__))
print("当前路径: " , f"{dir_path}")
pass
os.rename(f"{dir_path}\\dist", "jm_")
# 进入打包后产物文件夹
print("进入打包后产物文件夹")
os.chdir("jm_")
# 测试程序
print("测试程序")
subprocess.run("main.exe", shell=True)
subprocess.run("version.exe", shell=True)
subprocess.run("help.exe", shell=True)
print("大功告成~感谢您的使用")

18
windows/command/main.py Normal file
View File

@@ -0,0 +1,18 @@
import sys, subprocess
# 设定
if len(sys.argv) == 1:
# 如果什么都没输入就输出
subprocess.run("help.exe", check=True)
if len(sys.argv) > 1:
command = sys.argv[1]
if command == "help":
subprocess.run("help.exe", check=True)
elif command == "jm":
subprocess.run("Download.exe", check=True)
elif command == "version":
subprocess.run("version.exe", check=True)
else:
print(f"未知的命令: {command}")

View File

@@ -1,23 +0,0 @@
import sys, os, subprocess
from pathlib import Path
# 设定使用的python环境
venv_python = Path(r"./venv/Scripts/python.exe")
# 设定
if len(sys.argv) == 1:
# 如果什么都没输入就输出
subprocess.run([str(venv_python),".\\command\\help.py"], check=True)
if len(sys.argv) > 1:
command = sys.argv[1]
if command == "help":
subprocess.run([str(venv_python),".\\command\\help.py"], check=True)
elif command == "jm":
subprocess.run([str(venv_python),".\\command\\Download.py"], check=True)
elif command == "version":
subprocess.run([str(venv_python),".\\command\\version.py"], check=True)
else:
print(f"未知的命令: {command}")

View File

@@ -1,38 +0,0 @@
# -*- mode: python ; coding: utf-8 -*-
a = Analysis(
['main.py'],
pathex=[],
binaries=[],
datas=[('.\\command', 'command')],
hiddenimports=[],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
noarchive=False,
optimize=0,
)
pyz = PYZ(a.pure)
exe = EXE(
pyz,
a.scripts,
a.binaries,
a.datas,
[],
name='x86_64_intel_windwos',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=True,
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
)