pyinstaller:在Mac下打包多个python脚本

时间:2013-06-25 16:04:10

标签: python pyside pyinstaller

这是我第一次使用pyinstaller。我的目标是在Mac Mountain Lion中构建一个.app。该应用程序基本上是一个用PySide编写的GUI,我有大约7个不同的Python脚本+ 1个.png文件。主文件调用4个文件,4个文件将重复调用其余2个文件。 .png文件只是窗口徽标。有人可以帮我诊断一下吗?我不知道出了什么问题。我在网上搜索了很多文档,比如更改规范,添加导入等等,但我的应用程序仍然无法运行。

仅供参考,Pyinstaller可以为我生成一个应用程序,但有两个问题:

  1. 该应用的图标未更改。
  2. 打开时应用程序崩溃。
  3. 我的Python版本是2.7.5,我正在使用PyInstaller-2.0。这是我的包装代码:

    python pyinstaller.py --onefile --windowed --name=MyApplication -i ~/Documents/AASource/icon.ico ~/Documents/AASource/Scripts/main_file.py
    

    这是spec文件:

    # -*- mode: python -*-
    a = Analysis(['/Users/boxuancui/Documents/AASource/Scripts/main_file.py'],
                 pathex=['/Users/boxuancui/Documents/pyinstaller-2.0'],
                 hiddenimports=[],
                 hookspath=None)
    pyz = PYZ(a.pure)
    exe = EXE(pyz,
              a.scripts,
              a.binaries,
              a.zipfiles,
              a.datas,
              name=os.path.join('dist', 'MyApplication'),
              debug=False,
              strip=None,
              upx=True,
              console=False , icon='/Users/boxuancui/Documents/AASource/icon.ico')
    app = BUNDLE(exe,
                 name=os.path.join('dist', 'MyApplication.app'))
    

    以下是崩溃消息的一部分:

    Crashed Thread:  0  Dispatch queue: com.apple.main-thread
    
    Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
    Exception Codes: KERN_INVALID_ADDRESS at 0x00000000000054d8
    

    提前致谢!任何帮助将不胜感激!


    UPDATE1:我已将问题缩小到这个范围:每当我尝试执行以下导入时,创建的应用程序都会崩溃。有谁知道为什么?

    import pandas.rpy.common as com
    import pandas.io.sql as psql
    import rpy2.robjects as robjects
    

    更新2:我仔细研究pandas.io.sql。没有这样的模块存在。这就是PyInstaller无法找到它的原因。我在哪里可以找到这个文件?同样,rpy2.objectspandas.rpy.common也不见了。

1 个答案:

答案 0 :(得分:0)

你能从python控制台导入pandas.io.sql吗? 这些导入是在主文件中吗?如果没有尝试这样做