【发布时间】:2012-03-24 23:58:02
【问题描述】:
首先,我在不使用 pip 的情况下安装了 lxml(Mac OS 10.6.8 上的 Python 2.7.2)。然后,我阅读了this post 并使用 pip (sudo pip install lxml) 再次安装了它。我还是有问题:
我可以导入 lxml (import lxml) 但我不能使用 from lxml import etree。我有这个错误信息:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/lxml-2.3.3-py2.7-macosx-10.6-intel.egg/lxml/etree.so, 2): Symbol not found: _htmlParseChunk
Referenced from: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/lxml-2.3.3-py2.7-macosx-10.6-intel.egg/lxml/etree.so
Expected in: flat namespace
in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/lxml-2.3.3-py2.7-macosx-10.6-intel.egg/lxml/etree.so
然后,我尝试从these instructions 之后的源代码安装 lxml,我收到以下错误消息:
checking whether we are cross compiling... configure: error: in `/Users/my_name/Applications/lxml/lxml-2.2.2/build/tmp/libxml2-2.7.8':
configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details
Traceback (most recent call last):
File "setup.py", line 115, in <module>
STATIC_CFLAGS, STATIC_BINARIES),
File "/Users/my_name/Applications/lxml/lxml-2.2.2/setupinfo.py", line 50, in ext_modules
libxslt_version=OPTION_LIBXSLT_VERSION)
File "/Users/my_name/Applications/lxml/lxml-2.2.2/buildlibxml.py", line 198, in build_libxml2xslt
call_subprocess(configure_cmd, cwd=libxml2_dir, **call_setup)
File "/Users/my_name/Applications/lxml/lxml-2.2.2/buildlibxml.py", line 158, in call_subprocess
raise Exception('Command "%s" returned code %s' % (cmd_desc, returncode))
Exception: Command "./configure --without-python --disable-dependency-tracking --disable-shared --prefix=/Users/my_name/Applications/lxml/lxml-2.2.2/build/tmp/libxml2" returned code 1
最后,我按照this answer 的第二个建议,使用了命令行sudo STATIC_DEPS=true /usr/bin/easy_install-2.7 lxml。它在 Apple 提供的系统 Python 2.7 上安装了 lxml,而不是在我当前使用的版本上。积极的一点:如果我运行 Apple-Python,我可以from lxml import etree。
负面点:我仍然不知道如何在另一个版本的python上安装lxml。有什么想法吗?
我目前正在使用/Library/Frameworks/Python.framework/Versions/2.7/bin/python。
【问题讨论】:
-
该问题中的 OSX 版本不同,但也许足以让您继续前进
-
不幸的是,从源代码构建 lxml 不起作用。
标签: python installation lxml importerror elementtree