pyinstaller: упаковка нескольких скриптов Python под Mac

Я впервые использую pyinstaller. Моя цель - создать приложение в Mac Mountain Lion. Приложение представляет собой графический интерфейс, написанный на PySide, и у меня есть около 7 различных скриптов Python + 1 файл .png. Основной файл вызывает 4 файла, а 4 файла повторно вызывают остальные 2 файла. Файл .png - это не что иное, как логотип окна. Может ли кто-нибудь помочь мне с диагнозом? Я не знаю, что пошло не так. Я просмотрел множество документов в Интернете, например, изменить спецификацию, добавить импорт и т. Д., Но мое приложение все еще не запускается.

К вашему сведению, Pyinstaller может сгенерировать для меня приложение, но есть две проблемы:

  1. Иконка приложения не изменилась.
  2. Приложение вылетает при открытии.

Моя версия 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

Вот файл спецификации:

# -*- 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

Заранее спасибо! Любая помощь будет оценена по достоинству!


ОБНОВЛЕНИЕ 1. Я сузил проблему до следующего: всякий раз, когда я пытался выполнить следующие операции импорта, созданное приложение вылетало из строя. Кто-нибудь знает почему?

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

ОБНОВЛЕНИЕ 2: Я внимательно смотрю на pandas.io.sql. Такого модуля не существует. Вот почему PyInstaller не может его найти. Где я могу найти этот файл? Точно так же отсутствуют rpy2.objects и pandas.rpy.common.


person Boxuan    schedule 25.06.2013    source источник
comment
Я исправил проблему со значком. exe-файл использует .ico, а пакет приложений - .icns.   -  person Boxuan    schedule 26.06.2013


Ответы (1)


Можете ли вы импортировать pandas.io.sql из консоли Python? Этот импорт находится в основном файле? Если не попробуй сделать это

person hithwen    schedule 16.01.2014