使用 cx_freeze 构建的 Exe 会为所需的包产生“找不到模块”错误
Posted
技术标签:
【中文标题】使用 cx_freeze 构建的 Exe 会为所需的包产生“找不到模块”错误【英文标题】:Exe built with cx_freeze produces "module not found" errors for required package 【发布时间】:2017-08-06 17:56:55 【问题描述】:我使用 Python 制作了一个 twitter 机器人,它使用了 tweepy 模块。然后,我按照these 的说明,使用 cx_Freeze 将 Python 文件转换为 .exe 文件。如果我在 Powershell 中将程序作为 Python 文件运行,则一切正常,但是当我尝试在命令提示符下运行 .exe 文件时,出现以下错误:
Traceback (most recent call last):
File "C:\Python36\lib\site-packages\cx_Freeze\initscripts\__startup__.py",
line 14, in run module.run()
File "C:\Python36\lib\site-packages\cx_Freeze\initscripts\Console.py", line
26, in run
exec(code, m.__dict__)
File "twitterbot_retweet_recent_tweets_2.py", line 1, in <module>
ModuleNotFoundError: No module named 'tweepy'
我已经尝试再次卸载并重新安装 tweepy,但我不断收到同样的错误。有谁知道如何解决这个问题?
【问题讨论】:
我对 cx_Freeze 不熟悉,只是在这里简单介绍一下 -- 你在 setup.py 文件中正确引用了 tweepy 包吗? @DougCoburn 否。在 setup.py 文件中,我所拥有的软件包是:packages = ["idna"] options = 'build_exe': 'packages':packages, , @DougCoburn 我必须以某种方式添加它吗? 我试试看:cx-freeze.readthedocs.io/en/latest/distutils.html @DougCoburn 是的!非常感谢您的帮助!!!!!! 【参考方案1】:有时自动依赖检测不起作用。将缺少的包依赖项添加到 setup.py 中的 build_exe 选项
# Add tweepy, queue here
packages = ["idna", "tweepy", "queue"]
options =
'build_exe':
'packages':packages,
,
【讨论】:
以上是关于使用 cx_freeze 构建的 Exe 会为所需的包产生“找不到模块”错误的主要内容,如果未能解决你的问题,请参考以下文章
使用 cx_Freeze 从 .py 构建一个 .exe 文件
cx_freeze 将项目构建为 .exe 文件,出现 numpy 导入错误
使用 cx_Freeze - 如何在 .exe 中包含所有必要的文件?
使用 cx_Freeze、PyQt5、Python3 构建的 exe 无法导入 ExtensionLoader_PyQt5_QtWidgets.py 并运行