cx_freeze 将 .py 转换为 .exe 时出现“无名为模块”错误

问题描述 投票:0回答:2

我正在尝试使用

cx_freeze
将 .py 文件转换为 .exe,并且在构建时没有收到任何错误。我用另一个 .py 文件尝试了它,它运行得很好,但是这一次,它给了我这个错误:

Traceback (most recent call last):
  File "C:\Users\User\AppData\Local\Programs\Python\Python36-32\lib\site-packages\cx_Freeze\initscripts\__startup__.py", line 14, in run
    module.run()
  File "C:\Users\User\AppData\Local\Programs\Python\Python36-32\lib\site-packages\cx_Freeze\initscripts\Console.py", line 26, in run
    exec(code, m.__dict__)
  File "borzacommercial.py", line 6, in <module>
  File "C:\Users\User\AppData\Local\Programs\Python\Python36-32\lib\site-packages\bcrypt\__init__.py", line 25, in <module>
    from bcrypt import _bcrypt
ModuleNotFoundError: No module named '_cffi_backend'

我该怎么办?

python python-3.6 cx-freeze
2个回答
1
投票

当您收到一条消息说缺少某个包的一部分时,要做的第一件事就是尝试添加缺少的包的名称。您可能会收到更多错误,表明缺少更多模块,但也只包含这些模块。您只需在

packages
选项中添加包的名称即可完成此操作。像这样:

from cx_Freeze import setup, Executable 

base = None executables = [Executable("borzacommercial.py", base=base)] 

packages = ["idna", "_cffi_backend"] 
options = { 'build_exe': { 'packages':packages, }, } 

setup( name = "<any name>", options = options, version = "<any number>", 
description = '<any description>', executables = executables )

1
投票

导入_cffi_backend解决了这个问题

© www.soinside.com 2019 - 2024. All rights reserved.