.py 到 .exe 使用 cx_freeze 导致错误
Posted
技术标签:
【中文标题】.py 到 .exe 使用 cx_freeze 导致错误【英文标题】:.py to .exe using cx_freeze causes error 【发布时间】:2018-01-26 22:35:00 【问题描述】:我正在尝试使用 cx_freeze
将 .py 文件转换为 .exe,并且在构建时我没有收到任何错误。我用另一个 .py 文件试了一下,效果很好,但这一次,它给了我这个错误:
Traceback (most recent call last):
File "C:\Users\Tilen\AppData\Local\Programs\Python\Python36-32\lib\site-packages\cx_Freeze\initscripts\__startup__.py", line 14, in run
module.run()
File "C:\Users\Tilen\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\Tilen\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'
我该怎么办?
【问题讨论】:
我们可以看看你的安装脚本吗?from cx_Freeze import setup, Executable base = None executables = [Executable("borzacommercial.py", base=base)] packages = ["idna"] options = 'build_exe': 'packages':packages, , setup( name = "<any name>", options = options, version = "<any number>", description = '<any description>', executables = executables )
尝试在包中包含_cffi_backend
谢谢,我将它导入到 .py 文件中,现在可以使用了。
我会做一个你可能决定接受的答案。
【参考方案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 )
【讨论】:
【参考方案2】:导入 _cffi_backend 解决了这个问题
【讨论】:
以上是关于.py 到 .exe 使用 cx_freeze 导致错误的主要内容,如果未能解决你的问题,请参考以下文章
在 Mac 上使用 cx_Freeze 从 .py 创建 .exe
使用 cx_Freeze 从 .py 构建一个 .exe 文件
将 .py 转换为 .exe 时出现 cx_Freeze 错误