【发布时间】:2015-03-09 22:08:39
【问题描述】:
我在 OSX Yosemite 上的 py2app 中构建了一个应用程序,它使用 lxml。构建的应用程序在 OSX 10.8.5 上引发错误。这是我用于 py2app 的 setup.py 文件:
"""
This is a setup.py script generated by py2applet
Usage:
python setup.py py2app
"""
from setuptools import setup
APP = ['iTunes_Upload_App_V6.2.py']
DATA_FILES = []
OPTIONS = {
'iconfile':'AppleLogo.icns',
'packages' : ['wx', 'lxml'],
'plist': {'CFBundleShortVersionString':'6.2',}
}
setup(
app=APP,
name='iTunes_Upload_App_V6.2',
data_files=DATA_FILES,
options={'py2app': OPTIONS},
setup_requires=['py2app'],
)
这是我在没有安装额外模块或软件的 OSX 10.8.5 机器上运行它时收到的错误。
-------------------
Application Error!
10-53-07_09-01-2015
Traceback (most recent call last):
File "/Applications/iTunes_Upload_App_V6.2.app/Contents/Resources/iTunes_Upload_App_V6.2.py", line 1781, in GetJobInfo
File "lxml/etree.pyc", line 14, in <module>
File "lxml/etree.pyc", line 10, in __load
ImportError: dlopen(/Applications/iTunes_Upload_App_V6.2.app/Contents/Resources/lib/python2.7/lib-dynload/lxml/etree.so, 2): Symbol not found: _xmlBufContent
Referenced from: /Applications/iTunes_Upload_App_V6.2.app/Contents/Resources/lib/python2.7/lib-dynload/lxml/etree.so
Expected in: /usr/lib/libxml2.2.dylib
in /Applications/iTunes_Upload_App_V6.2.app/Contents/Resources/lib/python2.7/lib-dynload/lxml/etree.so
我可以在 10.8.5 系统上不安装任何其他东西的情况下完成这项工作吗?
更新: 我也试过这个 setup.py,还是不行:
"""
This is a setup.py script generated by py2applet
Usage:
python setup.py py2app
"""
from setuptools import setup
APP = ['iTunes_Upload_App_V6.2.py']
DATA_FILES = []
OPTIONS = {'argv_emulation': True,
'packages' : ['lxml'],
'frameworks' : ['/usr/local/libxml2-2.7.2/lib/libxml2.2.7.2.dylib'],
'iconfile':'AppleLogo.icns',
'plist': {'CFBundleShortVersionString':'6.2',}
}
setup(
app=APP,
name='iTunes_Upload_App_V6.2',
data_files=DATA_FILES,
options={'py2app': OPTIONS},
setup_requires=['py2app'],
)
更新:这里是我使用的 lxml 版本:
>>> from lxml import etree
>>> etree.LXML_VERSION
(3, 3, 5, 0)
更新:刚刚将 lxml 更新到版本 (3, 4, 1, 0),但仍然有同样的问题。
【问题讨论】:
-
什么版本的lxml?
-
我已更新问题以包含 lxml 版本。
-
我刚刚将 lxml 更新到版本 (3, 4, 1, 0),但仍然是同样的问题。