正确的方法来构建python可执行文件(在wxWidgets中),以便可以从另一个wxWidgets应用程序调用它?

时间:2015-05-26 06:56:57

标签: python wxpython pyinstaller

我有两个wxWidgets Python应用程序 - t1和t2。两个应用程序的源代码目录结构如下:
   GUI / T1 / ...
   GUI / t2 / ...

我在t1中有一个用于启动t2的按钮。我尝试使用pyinstaller构建t1和t2,以便可以从t1正确启动t2。我在GUI / t1 / bin目录中构建了t1和t2。所以,t1.exe和t2.exe存在如下:

GUI / T1 /斌/ DIST / T1 / t1.exe
GUI / T1 /斌/ DIST / T2 / t2.exe

我可以通过点击各自的可执行文件成功启动t1和t2。但是,当我尝试从t1开始t2时,我收到一个错误:

Traceback (most recent call last):  
  File "<string>", line 15, in <module>  
  File "c:\pyinstaller-2.0\PyInstaller\loader\iu.py", line 386, in importHook
    mod = _self_doimport(nm, ctx, fqname)  
  File "c:\pyinstaller-2.0\PyInstaller\loader\iu.py", line 480, in doimport
    exec co in mod.__dict__  
  File "bin\build\pyi.win32\jobmanager\out00-PYZ.pyz\wx", line 45, in <module>  
  File "c:\pyinstaller-2.0\PyInstaller\loader\iu.py", line 386, in importHook
    mod = _self_doimport(nm, ctx, fqname)  
  File "c:\pyinstaller-2.0\PyInstaller\loader\iu.py", line 480, in doimport
    exec co in mod.__dict__  
  File "bin\build\pyi.win32\jobmanager\out00-PYZ.pyz\wx._core", line 4, in <modu
le>  
  File "c:\pyinstaller-2.0\PyInstaller\loader\iu.py", line 409, in importHook
    raise ImportError("No module named %s" % fqname)  
ImportError: No module named _core_  

t2从t1启动如下:

output = subprocess.check_output(&#34; ../ t2 / t2.exe&#34;,stderr = subprocess.STDOUT)

我不确定问题是什么。从t1启动t2的正确方法是什么?或者我需要更改构建中的任何内容吗?将t2.exe复制到dist / t1并启动为subprocess.check_output(&#34; t2.exe&#34;,...)也无济于事。

由于

1 个答案:

答案 0 :(得分:0)

问题是由于pyinstaller的2.0版本引起的。将pyinstaller的版本更改为2.1并重新构建两个可执行文件可以解决问题。