尝试 运行 可执行 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 build
从 C:\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 模块,尽管基本功能已经存在了一段时间。
我有一个 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 build
从 C:\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 模块,尽管基本功能已经存在了一段时间。