py2exe命令行应用程序值运行安装程序时出错

2024-05-17 01:11:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试为我的python应用程序(使用3.9)创建一个可执行文件,该应用程序通过命令行运行。我遵循了教程here。这是我的密码:

setup.py:

from distutils.core import setup
import py2exe

setup(console=['cleanex.py'])

我的cleanex.py文件(概述):

import argparse
import sys
import os
import warnings

from Deconstruct import deconstruct_excel, deconstruct_excel_dir
from Construct import construct_excel_dir


def get_parser():
    # ...
    return parser


def check_args():
    # ....
    return


def check_path(path):
    # ...
    return


def check_construct_dir_arg():
    # ...
    return


def check_dir_arg():
    # ...
    return


def check_excel_arg():
    # ...
    return


def main():
    check_args()
    if parms.deconstruct:
        if parms.excel is not None:
            check_excel_arg()
            deconstruct_excel(parms.excel)
        else:
            check_dir_arg()
            warnings.simplefilter("ignore")
            deconstruct_excel_dir(parms.directory)
    elif parms.construct:
        check_dir_arg()
        warnings.simplefilter("ignore")
        construct_excel_dir(parms.directory)
    return


if __name__ == "__main__":
    parser = get_parser()
    parms = parser.parse_args()
    main()

在我的windows cmd中,我运行

python setup.py py2exe

但我遇到了这个错误:

running py2exe
Traceback (most recent call last):
  File "C:\Users\alexm\Documents\GCI\CleanEx\setup.py", line 4, in <module>
    setup(console=['cleanex.py'])
  File "C:\Python39\lib\distutils\core.py", line 148, in setup
    dist.run_commands()
  File "C:\Python39\lib\distutils\dist.py", line 966, in run_commands
    self.run_command(cmd)
  File "C:\Python39\lib\distutils\dist.py", line 985, in run_command
    cmd_obj.run()
  File "C:\Python39\lib\site-packages\py2exe\distutils_buildexe.py", line 192, in run
    self._run()
  File "C:\Python39\lib\site-packages\py2exe\distutils_buildexe.py", line 272, in _run
    builder.analyze()
  File "C:\Python39\lib\site-packages\py2exe\runtime.py", line 177, in analyze
    target.analyze(mf)
  File "C:\Python39\lib\site-packages\py2exe\runtime.py", line 78, in analyze
    modulefinder.run_script(self.script)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 62, in run_script
    self._scan_code(mod.__code__, mod)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 378, in _scan_code
    self.safe_import_hook(name, mod, fromlist, level)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 114, in safe_import_hook
    self.import_hook(name, caller, fromlist, level)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 96, in import_hook
    module = self._gcd_import(name)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 250, in _gcd_import
    return self._find_and_load(name)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 340, in _find_and_load
    self._scan_code(module.__code__, module)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 378, in _scan_code
    self.safe_import_hook(name, mod, fromlist, level)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 114, in safe_import_hook
    self.import_hook(name, caller, fromlist, level)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 96, in import_hook
    module = self._gcd_import(name)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 250, in _gcd_import
    return self._find_and_load(name)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 324, in _find_and_load
    self._load_module(spec, name)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 356, in _load_module
    self._add_module(name, mod)
  File "C:\Python39\lib\site-packages\py2exe\dllfinder.py", line 262, in _add_module
    self.hook(mod)
  File "C:\Python39\lib\site-packages\py2exe\dllfinder.py", line 259, in hook
    mth(self, mod)
  File "C:\Python39\lib\site-packages\py2exe\hooks.py", line 561, in hook_pandas
    finder.import_hook("pandas._libs.tslibs.base")
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 96, in import_hook
    module = self._gcd_import(name)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 250, in _gcd_import
    return self._find_and_load(name)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 264, in _find_and_load
    self._gcd_import(parent)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 250, in _gcd_import
    return self._find_and_load(name)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 264, in _find_and_load
    self._gcd_import(parent)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 250, in _gcd_import
    return self._find_and_load(name)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 264, in _find_and_load
    self._gcd_import(parent)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 250, in _gcd_import
    return self._find_and_load(name)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 340, in _find_and_load
    self._scan_code(module.__code__, module)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 378, in _scan_code
    self.safe_import_hook(name, mod, fromlist, level)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 114, in safe_import_hook
    self.import_hook(name, caller, fromlist, level)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 96, in import_hook
    module = self._gcd_import(name)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 250, in _gcd_import
    return self._find_and_load(name)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 264, in _find_and_load
    self._gcd_import(parent)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 250, in _gcd_import
    return self._find_and_load(name)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 340, in _find_and_load
    self._scan_code(module.__code__, module)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 378, in _scan_code
    self.safe_import_hook(name, mod, fromlist, level)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 114, in safe_import_hook
    self.import_hook(name, caller, fromlist, level)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 96, in import_hook
    module = self._gcd_import(name)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 250, in _gcd_import
    return self._find_and_load(name)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 340, in _find_and_load
    self._scan_code(module.__code__, module)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 378, in _scan_code
    self.safe_import_hook(name, mod, fromlist, level)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 114, in safe_import_hook
    self.import_hook(name, caller, fromlist, level)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 96, in import_hook
    module = self._gcd_import(name)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 250, in _gcd_import
    return self._find_and_load(name)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 340, in _find_and_load
    self._scan_code(module.__code__, module)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 378, in _scan_code
    self.safe_import_hook(name, mod, fromlist, level)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 114, in safe_import_hook
    self.import_hook(name, caller, fromlist, level)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 101, in import_hook
    self._handle_fromlist(module, fromlist, caller)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 172, in _handle_fromlist
    self._gcd_import('{}.{}'.format(mod.__name__, x))
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 250, in _gcd_import
    return self._find_and_load(name)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 340, in _find_and_load
    self._scan_code(module.__code__, module)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 378, in _scan_code
    self.safe_import_hook(name, mod, fromlist, level)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 114, in safe_import_hook
    self.import_hook(name, caller, fromlist, level)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 96, in import_hook
    module = self._gcd_import(name)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 250, in _gcd_import
    return self._find_and_load(name)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 340, in _find_and_load
    self._scan_code(module.__code__, module)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 385, in _scan_code
    self._scan_code(c, mod)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 385, in _scan_code
    self._scan_code(c, mod)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 378, in _scan_code
    self.safe_import_hook(name, mod, fromlist, level)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 114, in safe_import_hook
    self.import_hook(name, caller, fromlist, level)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 96, in import_hook
    module = self._gcd_import(name)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 250, in _gcd_import
    return self._find_and_load(name)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 340, in _find_and_load
    self._scan_code(module.__code__, module)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 378, in _scan_code
    self.safe_import_hook(name, mod, fromlist, level)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 114, in safe_import_hook
    self.import_hook(name, caller, fromlist, level)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 96, in import_hook
    module = self._gcd_import(name)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 250, in _gcd_import
    return self._find_and_load(name)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 340, in _find_and_load
    self._scan_code(module.__code__, module)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 378, in _scan_code
    self.safe_import_hook(name, mod, fromlist, level)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 114, in safe_import_hook
    self.import_hook(name, caller, fromlist, level)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 101, in import_hook
    self._handle_fromlist(module, fromlist, caller)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 172, in _handle_fromlist
    self._gcd_import('{}.{}'.format(mod.__name__, x))
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 250, in _gcd_import
    return self._find_and_load(name)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 340, in _find_and_load
    self._scan_code(module.__code__, module)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 378, in _scan_code
    self.safe_import_hook(name, mod, fromlist, level)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 114, in safe_import_hook
    self.import_hook(name, caller, fromlist, level)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 96, in import_hook
    module = self._gcd_import(name)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 250, in _gcd_import
    return self._find_and_load(name)
  File "C:\Python39\lib\site-packages\py2exe\mf34.py", line 295, in _find_and_load
    spec = importlib.util.find_spec(name, path)
  File "C:\Python39\lib\importlib\util.py", line 111, in find_spec
    raise ValueError('{}.__spec__ is not set'.format(name)) from None
ValueError: py.__spec__ is not set

我不知道这意味着什么以及如何修复它。如果需要,我可以提供更多信息


Tags: nameinpyimportselflibpackagesline