使用py2exe后,编译的python脚本返回WindowsError:[错误3]

时间:2011-04-28 20:52:02

标签: python pygame py2exe

所以我现在已经写了这个游戏一段时间了,最​​后还是完成了。然而,由于这个游戏是针对一个类而且我使用了我的老师不打算安装的库,我需要创建一个独立于python和游戏依赖项的可执行文件。我运行py2exe并成功完成,但是当我运行exe时出现此错误:

Traceback (most recent call last):
  File "main.pyw", line 1, in <module>
  File "zipextimporter.pyo", line 82, in load_module
  File "libs\__init__.pyo", line 3, in <module>
WindowsError: [Error 3] The system cannot find the path specified: 'C:\\Users\\matt\\workspace\\COS125\\src\\dist\\includes.zip\\libs/*.*'

我已经找出了导致错误的最可能原因。它很可能源于我为每个软件包安装的自动导入程序。在我的软件包的 init .py文件中,我使用以下代码,以便简单的“from libs import *”将导入lib软件包中的所有文件。这将使每个文件都被加载,好像我将每个文件加载为“来自libs.module import *”。

init 文件中的代码如下:

import os, sys
path = os.path.dirname(__file__)
dirList = os.listdir(path)
for mod in dirList:
    ext = os.path.splitext(mod)
    mod = mod[:-len(ext[1])]
    if (mod not in dir() and 
        mod != "__init__" and
        mod != "" and
        mod != "._"):
        exec("from " + mod + " import *")

基本上我要问的是,是否有其他人知道怎么做而不会在编译后导致错误?

1 个答案:

答案 0 :(得分:0)

我想我几年前遇到过类似的问题,我通过删除发行版中的zip文件解决了这个问题。

使用py2exe选项,尝试设置zipfile = None或关闭压缩并关闭捆绑。

请注意,创建一个可在所有Windows操作系统上运行的Windows exe是一件痛苦的事。我从py2exe列表herehere得到了很好的反馈。