使用py2app打包的PySide应用在其他电脑上无法正常工作
我有一个小应用程序,想用py2app打包。最开始我遇到了一个问题,就是打包后PySide没有正确链接,不过我解决了这个问题(至少在本地解决了),方法是在最终构建的容器里的__boot__.py
文件中添加了sys.path.insert(0, os.path.join(os.getcwd(), 'lib', 'python2.6','lib-dynload'))
。
打包完成后,在我的电脑上运行得很好。不幸的是,在另一台电脑上运行时却出现了这个问题:
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
在options
里,你应该添加
'includes': 'PySide'
如果这样做不管用,有时候我发现把需要的模块放在设置脚本的最上面导入会有帮助。
所以把下面的内容改成:
from setuptools import setup
改成
from setuptools import setup
import PySide