当前位置: 首页 > 知识库问答 >
问题:

使用cx\u Freeze将python文件转换为可执行文件,然后获取错误AttributeError:“list”对象没有属性“main\u script”

汪泓
2023-03-14

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

python setup.py build

我得到一个错误说

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

详情如下:

Traceback (most recent call last):

文件"H:\OneDrive\作业\开发\运输管理系统\setup.py",第17行,cx_Freeze.setup(文件"C:\用户\lersa\AppData\本地\程序\Python\Python39\lib\站点包\cx_Freeze\dist.py",第397行,设置distutils.core.setup(**attrs)文件"C:\用户\lersa\AppData\本地\程序\Python\Python39\lib\distutils\core.py",第148行,设置dist.run_commands()文件"C:\用户\lersa\AppData\本地\程序\Python\Python39\lib\distutils\dist.py",第966行,run_commands_command(cmd)文件"C:\用户\lersa\AppData\本地\程序\Python\Python39\lib\distutils\dist.py",第985行,run_commandcmd_obj.run()文件"C:\用户\lersa\AppData\本地\程序\Python\Python39\lib用户\lersa\AppData\本地\程序\Python\Python39\lib\distutils\cmd.py",第313行,在run_commandself.distribution.run_command(命令)文件"C:\用户\lersa\AppData\本地\程序\Python\Python39\lib\distutils\dist.py",第985行,在run_commandcmd_obj.run()文件"C:\用户\lersa\AppData\本地\程序\Python\Python39\lib\site-包\cx_Freeze\dist.py",第265行,在运行的冷冻器中。冻结()文件"C:\用户\lersa\AppData\本地\程序\Python\Python39\lib\site-包\cx_Freeze\freezer.py",第799行,在冻结自己中。_FreezeExecutable(可执行)文件"C:\用户\lersa\AppData\本地\程序\Python\Python39\lib\site-包\cx_Freeze\freezer.py",第238行,在_FreezeExecutable查找器中。包含文件(exe.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
)

共有1个答案

谷梁德容
2023-03-14

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",
      ),
   ])

将可执行列表直接放在设置功能中。

 类似资料:
  • 问题内容: 我公司已经开发了一个Web应用程序(J2EE环境/ Tomcat服务器),并希望将其作为产品出售。客户可以将此产品用作基本版或高级版。在高级版中,客户具有一些额外的功能(可能是一些额外的链接)。这种区别是基于串行密钥进行的。 讨论上述问题时,我只是一个听众。 是否可以解决上述问题?我们如何将War文件转换为exe文件并嵌入逻辑以区分高级版本或基本版本。 问题答案: 我们如何将War文件

  • 问题内容: 我正在尝试在Python中获取url参数。 我正在使用此代码: 但我收到此错误: 问题答案: 你想request.args在Flask中使用GET参数。 要访问通过URL(?key = value)提交的参数,可以使用args属性:

  • 问题内容: 我试图在Heroku的我的GeoDjango应用程序上运行,但出现以下错误: AttributeError:“ DatabaseOperations”对象没有属性“ geo_db_type” 我所有的 研究都得出了相同的解决方案:确保用作数据库引擎。有趣的是,我已经这样做了(我也有在): 还有其他我想念的东西吗?非常感谢您的帮助,以下是完整的错误跟踪供参考: 问题答案: 该OP是使用G

  • 问题内容: 我正在使用python 3.3.3。我正在从tutorialspoint.com做本教程。我无法理解此错误是什么。 这是我的代码: 错误: 问题答案: 您在这里遇到问题有两个原因。第一个是您以只写模式创建的。您需要一个可以读写的文件对象。您还可以使用关键字在完成处理后自动销毁文件对象,而不必担心手动关闭它: 第二个是(就像您非常强烈地指出的错误一样)文件对象(文本文件对象)没有方法。您

  • 问题内容: 我收到一个错误 尝试写入文件时。它是关于编写有关学生分数,他们的姓名,姓氏,班级名称的文件(只需输入班级为),以记录有多少个分数及其分数。仅将其最近的3个分数保存在文件中。我不明白这是什么意思。 这是代码 问题答案: 您的附加代码混合在一起了。该方法在对象上: 请注意,我还将呼叫 移出 了循环。 您不需要在那里使用循环;如果要列出所有行,只需执行以下操作: 要处理文件关闭,请将文件对象

  • 问题内容: 我制作了一个Java应用程序,希望在Windows,OSX和Linux上分发而不分发jar文件。我使用了出色的Windows exe包装器http://launch4j.sourceforge.net/创建了一个带有我的图标的.exe文件,它不会吓到Windows用户。 我可以在OSX / Unix中使用类似的包装器吗?一个重要的考虑因素是,我希望在可执行文件上有自己的图标(尤其是对于