Приложение PySide не работает на других компьютерах в комплекте с py2app - PullRequest
0 голосов
/ 08 декабря 2011

У меня небольшое приложение, которое я пытаюсь связать с py2app. Сначала я столкнулся с проблемой неправильного связывания PySide после объединения, но я исправил это (локально, по крайней мере), добавив sys.path.insert(0, os.path.join(os.getcwd(), 'lib', 'python2.6','lib-dynload')) к __boot__.py в контейнере окончательной сборки.

После сборки он отлично работает на моем компьютере. К сожалению, попытка запустить его на другом компьютере приводит к следующему:

Traceback (most recent call last):
  File "/Volumes/code/dailies/dist/Sequence Dailies.app/Contents/Resources/__boot__.py", line 32, in <module>
    _run('dailies_v04.py')
  File "/Volumes/code/dailies/dist/Sequence Dailies.app/Contents/Resources/__boot__.py", line 29, in _run
    execfile(path, globals(), globals())
  File "/Volumes/code/dailies/dist/Sequence Dailies.app/Contents/Resources/dailies_v04.py", line 9, in <module>
    from PySide.QtCore import *
  File "PySide/__init__.pyc", line 2, in <module>
  File "PySide/private.pyc", line 2, in <module>
  File "PySide/QtCore.pyc", line 18, in <module>
  File "PySide/QtCore.pyc", line 11, in __load
ImportError: dlopen(/Volumes/code/dailies/dist/Sequence Dailies.app/Contents/Resources/lib/python2.6/lib-dynload/PySide/QtCore.so, 2): Library not loaded: libpyside-python2.6.1.0.dylib
  Referenced from: /Volumes/code/dailies/dist/Sequence Dailies.app/Contents/Resources/lib/python2.6/lib-dynload/PySide/QtCore.so
  Reason: image not found

Есть ли дополнительный шаг, который я пропустил где-нибудь, чтобы правильно связать PySide? Это мое (неинтересное) setup.py:

from setuptools import setup

APP = ['dailies_v04.py']
DATA_FILES = []
OPTIONS = {'argv_emulation': False}

setup(
    app=APP,
    data_files=DATA_FILES,
    options={'py2app': OPTIONS},
    setup_requires=['py2app'],
)

1 Ответ

0 голосов
/ 08 декабря 2011

В options, вы должны добавить

'includes': 'PySide'

Если это не работает, иногда мне помогает импорт необходимых модулей в верхней части сценария установки.

Так измените:

from setuptools import setup

до

from setuptools import setup
import PySide
...