WxPython:PyInstaller失败,没有名为_core_的模块

dev*_*ull 7 python ubuntu wxpython pyinstaller ubuntu-14.04

我正在使用PyInstaller将我的wxpython(3.0.2.0)应用程序转换为二进制文件.在Ubuntu 12.04上构建和执行时,二进制文件工作正常.但是,如果我在Ubuntu 14.04上构建,我会收到以下错误.(当我直接启动python脚本即使在Ubuntu 14.04中的python my_application.py时,应用程序也能正常工作).知道在使用PyInstaller打包应用程序时可能会遗漏什么?

$ ./my_application 
Traceback (most recent call last):
  File "<string>", line 22, in <module>
  File "/usr/local/lib/python2.7/dist-packages/PyInstaller/loader/pyi_importers.py", line 270, in load_module
    exec(bytecode, module.__dict__)
  File "/local/workspace/my_application/out00-PYZ.pyz/wx", line 45, in <module>
  File "/usr/local/lib/python2.7/dist-packages/PyInstaller/loader/pyi_importers.py", line 270, in load_module
    exec(bytecode, module.__dict__)
  File "/local/workspace/my_application/out00-PYZ.pyz/wx._core", line 4, in <module>
**ImportError: No module named _core_**
Run Code Online (Sandbox Code Playgroud)

我的PyInstaller规范文件如下所示:

...
pyz = PYZ(a.pure)
exe = EXE(pyz,
          a.scripts,
          exclude_binaries=True,
          name='my_application',
          debug=False,
          onefile = True,
          strip=None,
          upx=True,
          console=True )
coll = COLLECT(exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               strip=None,
               upx=True,
               name='my_application')
Run Code Online (Sandbox Code Playgroud)

J R*_*ape 8

从根本上说问题是PyInstaller版本 - 你需要在develop版本上.这个问题已经出现,并且在PyInstaller Github问题上有记载.

要安装最新版本并进行纠正 - 在命令提示符下键入:

$ pip install git+https://github.com/pyinstaller/pyinstaller
Run Code Online (Sandbox Code Playgroud)

这直接从github安装最新版本的pyinstaller(github上的这个分支.直到最近,PyInstaller有一个单独的python3分支,但是这已经合并回develop分支.如果你需要使用Python 3.x,你将需要这个分支 -通过追加获得这个@developpip install命令)

上面的方法依赖于你已经git安装在你的系统上以获取pyinstaller代码(这些天很可能是开发人员,我猜).如果没有,你也可以

  1. 使用安装git apt-get install git(你可能需要sudo)
  2. 下载pyinstaller-develop zip文件(此处)并手动安装.请注意,截至2014年10月维基,这应该支持2.7和3.x.

就个人而言 - 我更喜欢选项1,因为你自己避免了从压缩源树构建的所有潜在问题.

测试

我使用来自wxPython网页的简单"Hello world"应用程序在Ubuntu 14.04,64位,wxpython 3.0.2.0和python 2.7.6上进行了测试.OP的问题在安装pyinstaller开发版之前完全重现.安装开发版本后,应用程序正确构建并作为可执行文件运行.


使用git使用pip的文档 - https://pip.pypa.io/en/latest/reference/pip_install.html#git

从您的问题中不清楚您在Ubuntu 12.04安装上使用的PyInstaller版本与14.04版本相比.您在12.04上看到的版本似乎没有出现与14.04上安装的标准版本相同的问题.