【发布时间】:2011-10-26 12:46:23
【问题描述】:
我有一个用 Python 2.7 和 PyGTK 编写的项目,使用 py2exe 进行编译。我有两个模块,“Launchpad.py”和“RegistrationScreen.py”。我需要从 Launchpad.py 打开 RegistrationScreen.py。
我目前正在使用以下代码:
def open_registration(event, data=None):
subprocess.Popen(["python", "RegistrationScreen.py"])
这在我测试时工作正常 - 打开窗口时没有打开 shell 窗口。
但是,当我使用 py2exe 编译时,在执行创建的应用程序时出现以下日志错误。
Traceback(最近一次调用最后一次):文件“Launchpad.py”,第 26 行,在 open_registration 文件“subprocess.pyc”,第 672 行,在 init
_execute_child WindowsError 中的文件“subprocess.pyc”,第 882 行: [错误2]系统找不到指定的文件
如何修复我的代码以便 py2exe 能够正确编译它?有没有另一种方法可以从 Launchpad.py 打开 RegistrationScreen.py 模块的窗口,不会在最终的 .exe 文件中引发错误?
【问题讨论】:
-
您可能想在标题或标签中提及 py2exe。
-
我没有解决方案,但您可以尝试一些方法。看看将 RegistrationScreen.py 放在与 py2exe 创建的 exe 相同的目录中是否有帮助。那就是exe运行没有错误。如果这确实有效,那么在您的 setup.py 脚本中,您将不得不找到某种方法将 RegistrationScreen.py 作为包的一部分包含在内。也许 - docs.python.org/distutils/… ?
-
这并没有解决它......这也很好,因为 RegistrationScreen.py 可能是我整个应用程序中最重要的源安全关键模块。
标签: python pygtk subprocess py2exe