找不到模块'cx_Freeze__init__'

Posted

技术标签:

【中文标题】找不到模块\'cx_Freeze__init__\'【英文标题】:can't find module 'cx_Freeze__init__'找不到模块'cx_Freeze__init__' 【发布时间】:2014-03-25 11:40:00 【问题描述】:

我正在尝试将我的 Python 项目转换为独立的可执行文件,以便在其他未安装 Python 的服务器上运行它。

使用的命令:

python setup.py build > build.log

当我尝试运行生成的 exe 时,它​​总是吐出以下错误消息:

zipimport.ZipImportError: can't find module 'cx_Freeze__init__'
Fatal Python error: unable to locate initialization module

Current thread 0x00000b8c (most recent call first):

我尝试在 setup.py 模块中定义我在整个项目中使用的所有库,但这没有任何区别。

我还添加了要包含的 DLL 文件 (described in the post cx-freeze doesn't find all dependencies)。

该项目由以下库组成(pip list 的输出):

cx-Freeze (4.3.2)
docopt (0.6.1)
pip (1.5.4)
psutil (2.0.0)
pywin32 (218)
requests (2.2.1)
setuptools (2.2)
virtualenv (1.11.4)
WMI (1.4.9)

setup.py的内容:

include_files=[
           (r'C:\Python34\Lib\site-packages\pywin32_system32\pywintypes34.dll', 'pywintypes34.dll'),
           (r'C:\Python34\Lib\site-packages\pywin32_system32\pythoncom34.dll', 'pythoncom34.dll'),]

build_exe_options = dict(
    packages=['os', 'concurrent.futures', 'datetime', 'docopt', 'email.mime.text', 'configparser', 'enum',
              'json', 'logging', 'psutil', 'requests', 'smtplib', 'socket', 'subprocess', 'sys', 'threading', 'time',
              'wmi', 'pythoncom'],
    excludes=[],
    include_files=include_files)

executable = Executable(
    script = 'pyWatch.py',
    copyDependentFiles = True,
    base = 'Console')

setup(  name= "pyWatch",
        version= "0.1",
        options= "build_exe": build_exe_options,
        executables= [executable])

cx_freeze 的输出(太大,无法在此处粘贴):http://pastebin.com/2c4hUSeD

所有帮助将不胜感激!

【问题讨论】:

嗯,是的,它很可能是 Python 3.4 中 cx_Freeze 尚未适应的东西。如果您的机器上有 VS 2010 编译器,您可以尝试使用来自bitbucket.org/anthony_tuininga/cx_freeze 的 cx_Freeze 开发版吗? @ThomasK:我可以确认它适用于 Python 3.3.5。所以它肯定与 Python 3.4 有关。 我已经做了一个 PR 来修复它:bitbucket.org/anthony_tuininga/cx_freeze/pull-request/48/… 这应该适用于最新版本的 cx_Freeze (4.3.3)。 我也遇到过类似的情况,通过降级到 Python 3.4.0 和 cx_Freeze 4.3.2 解决了。祝你好运。 【参考方案1】:

而不是 cx_freeze,它是 2014 年更新的最后一个版本 有一个名为 pyinstaller 的模块,它是 2016 年的最后一个版本更新 pyinstaller

pyinstaller myscript.py 和 bam 也很容易使用

【讨论】:

以上是关于找不到模块'cx_Freeze__init__'的主要内容,如果未能解决你的问题,请参考以下文章

__init__.py 在同一目录中找不到模块[重复]

Cython cimport 找不到 .pxd 模块

使用 pytest 运行测试时出现问题 - 在我自己的包中找不到模块

Python cx_Freeze __init__“没有名为编解码器的模块”

PyCharm 在 __init__.py 中找不到任何 OpenCV 函数的引用

找不到存储文件 __init__.py 翻译的语言环境路径