You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用cx_Freeze转.py为exe时出现No module named '_cffi_backend'错误求助

解决cx_Freeze打包exe时ModuleNotFoundError: No module named '_cffi_backend'的问题

这个问题我之前碰到过,本质是cx_Freeze的自动依赖检测漏掉了bcrypt依赖的_cffi_backend模块——毕竟这类C扩展模块有时候不会被自动扫描到。给你几个实用的解决办法:

方法1:在setup.py里手动指定要包含的模块

修改你的cx_Freeze配置文件(一般是setup.py),在build_exe选项里添加includes参数,明确把_cffi_backend和bcrypt都加进去,让cx_Freeze强制打包这些模块:

import sys
from cx_Freeze import setup, Executable

# 替换成你的主脚本文件名
main_script = "borzacommercial.py"

# Windows平台下如果是GUI程序用Win32GUI,控制台程序可以把base设为None
base = "Win32GUI" if sys.platform == "win32" else None

executables = [Executable(main_script, base=base)]

build_options = {
    "includes": ["_cffi_backend", "bcrypt"],
    # 你原来的其他配置比如packages、include_files等可以继续保留
}

setup(
    name="BorzaCommercial",
    version="1.0",
    description="你的应用描述",
    options={"build_exe": build_options},
    executables=executables
)

改完之后重新运行打包命令:python setup.py build

方法2:重新安装bcrypt和cffi依赖

有时候依赖安装不完整也会引发这个问题,先卸载再重新安装试试:

pip uninstall -y bcrypt cffi
pip install bcrypt cffi

安装完成后再重新执行打包流程。

方法3:手动复制模块到打包目录

如果上面两种方法都不行,你可以手动找到_cffi_backend.pyd文件——它在你的Python安装目录的Lib\site-packages\cffi文件夹里,把这个文件复制到打包生成的build\exe.win32-3.6(路径里的版本号对应你用的Python3.6)目录下,然后再运行exe就应该能正常启动了。

为啥之前的脚本没问题?

因为你之前打包的脚本没用到bcrypt,自然不会触发这个依赖遗漏的问题,这次脚本用到了bcrypt,而bcrypt底层依赖cffi的C扩展模块,cx_Freeze没自动识别到,所以就报错了。

内容的提问来源于stack exchange,提问作者TAJLN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:42:04