我正在尝试从我用 Python 2.7(使用 GTK+ 布局)编写的程序创建一个 exe 文件。我已经查阅了本指南: http: //www.py2exe.org/index.cgi/Py2exeAndPyGTK并尝试相应地设置我的文件。我成功地制作了一个 .exe 文件,但是在尝试运行它时,我收到了这个错误:
Traceback (most recent call last):
File "cipherka.py", line 183, in <module>
File "cipherka.py", line 18, in __init__
GError: Nelze otevřít soubor "C:\Repa\cipherka\dist\library.zip\gui.xml": No such file or directory
虽然我在 library.zip 存档中找不到 gui.xml 文件,但它与主 .exe (cipherka.exe) 文件在同一级别上可用。如果我自己将其复制到 .zip 文件中,则无法解决问题。
这是我的 setup.py 文件:
from distutils.core import setup
import py2exe
import glob
setup(
name="cipherka",
windows = [
{
'script': 'cipherka.py',
}
],
options = {
'py2exe': {
'packages':'encodings',
'includes': 'cairo, pango, pangocairo, atk, gobject, gio',
}
},
data_files=['gui.xml',
'README',
("modules", glob.glob("modules/*.*")),
("media", glob.glob("media/*.png"))
]
)
任何帮助将不胜感激!我可以在需要时为您提供任何必要的信息。谢谢
更新:
好的,我实施了更改。但是,它会做一些奇怪的事情。当我使用:
path = os.path.dirname(__file__).replace('\\library.zip','')
从 .py 文件运行时它可以工作,但在出现以下错误时编译失败:
Traceback (most recent call last):
File "cipherka.py", line 217, in <module>
File "cipherka.py", line 18, in __init__
NameError: global name '__file__' is not defined
当我使用
path = os.path.dirname('gui.xml').replace('\\library.zip','')
相反 - 程序停止从 python 运行,编译后的版本给了我以下信息:
C:\Repa\cipherka\dist\cipherka.exe:188: GtkWarning: gtk_tree_path_append_index: assertion `index >= 0' failed
C:\Repa\cipherka\dist\cipherka.exe:188: GtkWarning: gtk_tree_model_get_iter: assertion `path->depth > 0' failed
Traceback (most recent call last):
File "cipherka.py", line 217, in <module>
File "cipherka.py", line 55, in __init__
File "cipherka.py", line 188, in changed_cb
IndexError: could not find tree path
有任何想法吗?