cxfreeze无法包括模块,即使是专门包含的模块

2024-10-01 13:28:26 发布

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

我试图使用cx freeze来创建应用程序的静态自包含发行版(spyepython引擎,www.spye.dk),但是,当我运行cx freeze时,它说:

Missing modules:
? _md5 imported from hashlib
? _scproxy imported from urllib
? _sha imported from hashlib
? _sha256 imported from hashlib
? _sha512 imported from hashlib
? _subprocess imported from subprocess
? configparser imported from apport.fileutils
? usercustomize imported from site

这是我的设置.py公司名称:

^{pr2}$

请注意,我在includes列表中清楚地指定了缺少的模块。在

我怎么解决这个问题?在


Tags: from引擎modules应用程序www静态hashlibsubprocess
2条回答

缺少模块并不一定是个问题:许多模块尝试不同的导入来适应不同的平台或Python的不同版本。例如,在subprocess中,可以找到以下代码:

if mswindows:
    ...
    import _subprocess

cxu Freeze不知道这一点,所以它也会尝试在Linux/Mac上找到_subprocess,并将其报告为丢失。在includes中指定它们不会改变任何东西,因为它试图包含它们,但找不到它们。在

无论如何,它应该生成一个文件,所以试着运行它,看看它是否有效。在

我想,你不能简单地在列表上+=。在

您可能应该使用list方法extend-否则原始列表将不会被修改:

includes.extend(["BaseHTTPServer", "<rest of your modules>"])

编辑:(谢谢@ThomasK)

+=工作正常-我只有一个在线Python解释器不能正常工作。(我的Windows安装没有安装python,所以我不得不在线检查)。在

相关问题 更多 >