cx_Freeze ConfigError: No file named C:\Python\Scripts\cxfreeze.exe\__main__.py (for module __main__)

问题描述

我想为位于 C:\Python\Scripts 的名为 ZCasinoinsulte.py 的文件创建一个 .exe 文件。而且,每次我执行 cxfreeze ZCasinoinsulte.py 时,它都不起作用,并告诉我它在 cxfreeze.exe 中找不到 _main_.py。

规格:我在 Windows 10 64 位上安装了 python 3.9.1
我已经用 whl 安装了 cx_Freeze-6.5.1。
它确实创建了一个 exe 文件,但它会立即打开和关闭(即使我将 os.system("pause") 放在 ZCasinoinsulte.py 中)。

old code

任何帮助将不胜感激:D

编辑:我使用了 cxfreeze 6.4.2 版,代码运行得更好,没有错误但是只要我点击它,exe文件就会关闭。 这是我的 pip 列表回溯:



C:\Users\Hmili>pip list
Package            Version
------------------ -------
cx-Freeze          6.4.2
importlib-Metadata 3.4.0
pip                20.3.3
setuptools         49.2.1
zipp               3.4.0

这是我从 cmd 执行 exe 文件时的回溯:


C:\Python\Mes fichiers python\dist>ZCasinoinsulte.exe
Traceback (most recent call last):
  File "c:\python\lib\site-packages\cx_Freeze\initscripts\__startup__.py",line 41,in run
    module.run()
  File "c:\python\lib\site-packages\cx_Freeze\initscripts\Console.py",line 36,in run
    exec(code,m.__dict__)
  File "ZCasinoinsulte.py",line 3,in <module>
  File "c:\python\lib\site-packages\cx_Freeze\__init__.py",line 1,in <module>
    import setuptools
  File "c:\python\lib\site-packages\setuptools\__init__.py",line 24,in <module>
    from setuptools.depends import Require
  File "c:\python\lib\site-packages\setuptools\depends.py",line 6,in <module>
    from .py33compat import Bytecode
  File "c:\python\lib\site-packages\setuptools\py33compat.py",line 11,in <module>
    from setuptools.extern.six.moves import html_parser
  File "c:\python\lib\site-packages\setuptools\_vendor\six.py",line 92,in __get__
    result = self._resolve()
  File "c:\python\lib\site-packages\setuptools\_vendor\six.py",line 115,in _resolve
    return _import_module(self.mod)
  File "c:\python\lib\site-packages\setuptools\_vendor\six.py",line 82,in _import_module
    __import__(name)
ModuleNotFoundError: No module named 'html.parser'

这是 ZCasinoinsulte.py 的前十行:

# -*-coding:Latin-1 -*
import os,time
from cx_Freeze import setup,Executable

from random import randrange
argent=3000
while argent>0:
    condition1=0
    condition2=0
    argent=int(argent)
    

我该如何解决这个问题? (顺便感谢您的帮助:))

解决方法

我将 cx_Freeze 恢复到 6.4.2 版,之后似乎可以正常编译

pip install --upgrade cx-Freeze==6.4.2

好像是bug什么的。

,

首先,我按照 James Mackey 的建议降级了 pip。代码运行正常并创建了一个 exe 文件。所以第一个问题是兼容性问题。

此外,创建的 exe 文件在执行时立即崩溃。从使用cmd执行ZCasinoinsulte.exe的回溯来看,James Mackey认为ZCasinoinsulte.py的第三行有一个与之相关的错误。

ZCasinoinsulte.py 的第三行是:

from cx_Freeze import setup,Executable

我删除了这一行,因为它与实际代码无关。 我打开 cmd 并再次执行命令:cxfreeze ZCasinoinsulte.py。 exe 文件现在可以正常运行。