Python_cpp_Java 2024-08-23 16:02 采纳率: 33.3%
浏览 9

exe打包 帮我看一下怎么回事


import tkinter as tk
from tkinter import filedialog
import os
import subprocess

def choose_file():
    root = tk.Tk()
    root.withdraw()
    file_path = filedialog.askopenfilename(title="选择文件")
    if file_path:
        pack_files(file_path)
    else:
        print("未选择文件。")

def pack_files(file_path):
    temp_dir = os.path.join(os.path.dirname(file_path), 'temp_package')
    os.makedirs(temp_dir, exist_ok=True)

    file_name = os.path.basename(file_path)
    temp_file_path = os.path.join(temp_dir, file_name)
    if os.name == 'nt':
        os.system(f'copy "{file_path}" "{temp_file_path}"')
    else:
        os.system(f'cp "{file_path}" "{temp_file_path}"')

    try:
        subprocess.run(['pyinstaller', '--onefile', temp_file_path], check=True)
        exe_file_path = os.path.join('dist', file_name)
        if os.path.exists(exe_file_path):
            print(f"生成的 .exe 文件位于:{exe_file_path}")
        else:
            print("打包失败。")
    except subprocess.CalledProcessError as e:
        print(f"打包过程中发生错误: {e}")

if __name__ == "__main__":
    choose_file()

终端的结果:
打包过程中发生错误: Command '['pyinstaller', '--onefile', 'Y:/Pygame/大蛇无双\temp_package\snake_V1.0.00.py']' returned non-zero exit status 1.

  • 写回答

1条回答 默认 最新

  • 吃不了席 2024-08-23 17:06
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    从你提供的代码和终端结果来看,问题可能出在subprocess.run()这一行。错误信息显示pyinstaller命令返回了非零退出状态1,这意味着在执行过程中出现了错误。

    为了解决这个问题,你可以尝试以下方法:

    1. 确保你已经正确安装了pyinstaller。你可以在终端中运行pip install pyinstaller来安装它。

    2. 检查你的Python脚本是否有语法错误或其他问题。你可以使用python -m py_compile your_script.py来检查脚本的语法是否正确。

    3. 确保你的脚本路径和文件名没有特殊字符或空格,这可能会导致pyinstaller无法正确处理。

    4. 尝试使用绝对路径而不是相对路径。例如,将temp_file_path更改为绝对路径。

    5. 如果问题仍然存在,你可以尝试在终端中手动运行pyinstaller命令,看看是否有更详细的错误信息。例如:

    pyinstaller --onefile "Y:/Pygame/大蛇无双\temp_package\snake_V1.0.00.py"
    

    这将帮助你更好地了解问题所在。

    评论

报告相同问题?

问题事件

  • 创建了问题 8月23日