You need to enable JavaScript to run this app. cx_Freeze打包Python3+Tkinter程序触发ModuleNotFoundError等问题求解
优惠活动
大模型
产品
解决方案
定价
更多

cx_Freeze打包Python3+Tkinter程序触发ModuleNotFoundError等问题求解

解决方案

1. 修复TypeError : expected str, bytes or os.PathLike object not Executable报错

该错误由第二个setup脚本中Executable类重复嵌套导致,直接删除外层多余的Executable即可:
将原有代码:

cible_1 = Executable(
    Executable('BouclePrincipale.py', base="Win32GUI",icon=icone)
)

修改为:

cible_1 = Executable(
    'BouclePrincipale.py', base="Win32GUI",icon=icone
)

2. 修复所有ModuleNotFoundError报错

所有模块找不到的问题均由配置错误、拼写错误导致,按以下步骤修正:

  • 修正自定义模块拼写错误:你本地存放SQL代码的文件夹名为Communicationddb,但两个setup脚本中均错写为Communicationbdd,统一改为正确拼写。
  • 补充模块/包配置:cx_Freeze的includes参数仅接收模块名,不可填写文件路径;第三方完整包需要放到packages参数中才会被完整打包,修改配置部分代码如下:
# 把项目根目录加入模块搜索路径,确保cx_Freeze能找到你本地的Communicationddb文件夹
import os
sys.path.append(os.path.dirname(os.path.abspath(__file__)))

includes = ['atexit', 'tkinter', 'sqlite3', 'PIL']
packages = ['reportlab', 'ttkwidgets', 'Communicationddb']
  • 使用正确的解释器运行打包命令:打包前先激活项目对应的虚拟环境,再执行python setup.py build命令,不要直接用PyCharm运行setup.py文件,避免解释器环境 mismatch 导致cx_Freeze找不到虚拟环境内安装的依赖包。

3. 关于是否需要更换IDE

不需要,上述问题均为cx_Freeze配置错误和拼写错误导致,和PyCharm运行机制无关。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 02:45:03