尝试 运行 可执行 Python 脚本时出现致命 Python 错误

Fatal Python error when trying to run an executable Python script

我有一个 Python 脚本,我已使用 cx-freeze-4.3.4.win32-py3.4 将其转换为可执行文件。我在 Windows 7 64-bit 机器上安装了 Python 3.4

这是我的简单 setup.py 文件:

from cx_Freeze import setup, Executable

setup( name = "myfilename" , 
       version = "0.1" , 
       description = "This is my file" , 
       executables = [Executable("myfilename.py")] , )

I 运行 python setup.py buildC:\Python34 文件夹中的命令提示符,同时包含我尝试转换的脚本和 setup.py 文件。 这在另一个名为 exe.win32-3.4 的文件夹中创建了另一个名为 build 的文件夹。在该文件夹中,我找到了我的可执行文件、一堆 .pyd 文件、一个 .dll 文件和一个名为 library 的压缩存档,其中包含一堆 .pyc 文件。

如果我 运行 exe.win32-3.4 中的可执行文件和库 zip 存档它执行正常。但是,如果没有 .pyc 文件的库存档(基本上,如果我尝试 运行 .exe 本身,这是我应该能够做的),可执行文件会抛出此错误:

Fatal Python error: cannot get zipimpirter instance

Current thread 0x000001b48 (most recet call first):

我在网上做了一些初步搜索,寻找可能解决问题的方法,但没有找到任何实质性的东西。如果有人知道如何解决此问题,将不胜感激。

来自the docs

Single-file executables

cx_Freeze does not support building a single file exe, where all of the libraries for your application are embedded in one executable file.

有关使用 py2exe 和其他软件的单文件解决方案,请参阅 this question

在 3.5 中还有 new zipapp 模块,尽管基本功能已经存在了一段时间。