繁体   English   中英

使用 cx_Freeze 将 python 文件转换为可执行文件,然后得到错误 AttributeError: 'list' object has no attribute 'main_script'

[英]Convert a python file into an executable with cx_Freeze then get error AttributeError: 'list' object has no attribute 'main_script'

我正在使用 Tkinter 使用 Python 创建一个 GUI 桌面程序,现在尝试使用 cx_Freeze 将 python 文件转换为可执行文件,但是当我运行时

python setup.py build

我收到一条错误消息

AttributeError: 'list' object has no attribute 'main_script'

详情如下:

Traceback (most recent call last):

文件“H:\\OneDrive\\Jobs\\Dev\\TMS\\setup.py”,第 17 行,在 cx_Freeze.setup(文件“C:\\Users\\lersa\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages \\cx_Freeze\\dist.py”,第 397 行,在设置 distutils.core.setup(**attrs) 文件“C:\\Users\\lersa\\AppData\\Local\\Programs\\Python\\Python39\\lib\\distutils\\core.py” ,第 148 行,在 setup dist.run_commands() 文件“C:\\Users\\lersa\\AppData\\Local\\Programs\\Python\\Python39\\lib\\distutils\\dist.py”,第 966 行,在 run_commands self.run_command(cmd)文件“C:\\Users\\lersa\\AppData\\Local\\Programs\\Python\\Python39\\lib\\distutils\\dist.py”,第 985 行,在 run_command cmd_obj.run() 文件“C:\\Users\\lersa\\AppData\\Local \\Programs\\Python\\Python39\\lib\\distutils\\command\\build.py",第 135 行,在运行 self.run_command(cmd_name) 文件 "C:\\Users\\lersa\\AppData\\Local\\Programs\\Python\\Python39\\lib\\ distutils\\cmd.py”,第 313 行,在 run_command self.distribution.run_command(command) 文件“C:\\Users\\lersa\\AppData\\Local\\Programs\\Python\\Python39\\lib\\distutils\\dist.py”,第 985 行, 在 run_command cmd_obj.run () 文件“C:\\Users\\lersa\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\cx_Freeze\\dist.py”,第 265 行,在运行 freezer.Freeze() 文件“C:\\Users \\lersa\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\cx_Freeze\\freezer.py", line 799, in Freeze self._FreezeExecutable(executable) File "C:\\Users\\lersa\\AppData\\Local\\ Programs\\Python\\Python39\\lib\\site-packages\\cx_Freeze\\freezer.py”,第 238 行,在 _FreezeExecutable finder.IncludeFile(exe.main_script, exe.main_module_name) AttributeError: 'list' object has no attribute 'main_script'

问题出在我的设置文件还是我的代码的主文件中?

import cx_Freeze
from cx_Freeze import *
import sys

base = None
if sys.platform == "win32":
base = "Win32GUI"
executables = [
    cx_Freeze.Executable(
        "iwms.py",
        copyright="Copyright (C) 2021",
        base=base,
        icon="imws.ico",
    ),
],

cx_Freeze.setup(
    name = "App",
    version = "0.1",
    description = "My application!",
    options = {"build_exe": build_exe_options},
    executables = executables
)

IDK 知道为什么会这样,但您应该这样做:

import cx_Freeze
from cx_Freeze import *
import sys

base = None
if sys.platform == "win32":
base = "Win32GUI"

cx_Freeze.setup(
    name = "App",
    version = "0.1",
    description = "My application!",
    options = {"build_exe": build_exe_options},
    executables = [
       cx_Freeze.Executable(
           "iwms.py",
           copyright="Copyright (C) 2021",
           base=base,
           icon="imws.ico",
      ),
   ])

将可执行列表直接放在设置函数中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM