首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Py2app包含lxml

Py2app包含lxml
EN

Stack Overflow用户
提问于 2015-01-12 15:10:51
回答 1查看 260关注 0票数 1

我在OSX Yosemite上用py2app构建了一个应用程序,它使用lxml。构建的应用程序在OSX 10.8.5上抛出错误。下面是我在py2app中使用的setup.py文件:

代码语言:javascript
复制
"""
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机器上运行它时收到的错误。

代码语言:javascript
复制
-------------------
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,仍然不起作用:

代码语言:javascript
复制
"""
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'],
)

更新: Ans这里是我使用的lxml版本:

代码语言:javascript
复制
>>> from lxml import etree
>>> etree.LXML_VERSION
(3, 3, 5, 0)

更新:刚刚将lxml更新到版本(3,4,1,0),但仍然存在相同的问题。

EN

回答 1

Stack Overflow用户

发布于 2015-01-12 18:43:06

我使用的是10.8.5,看起来安装的libxml2确实不包含这个符号。nm -g /usr/lib/libxml2.2.dylib | grep xmlBufContent是空的。苹果可能会在Yosemite上发布一个更新的版本。你能(从技术上和法律上)将libxml2与你的应用捆绑在一起吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27896963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档