执行“从lxml导入etree"时出现错误通过pip成功安装lxml后,在python命令行中
问题描述:
bash-3.2$ pip install lxml-2.3.5.tgz
Unpacking ./lxml-2.3.5.tgz
Running setup.py egg_info for package from file:///Users/apple/workspace/pythonhome/misc/lxml-2.3.5.tgz
Building lxml version 2.3.5.
Building with Cython 0.17.
Using build configuration of libxslt 1.1.27
Building against libxml2/libxslt in the following directory: /usr/local/lib
warning: no previously-included files found matching '*.py'
Installing collected packages: lxml
Running setup.py install for lxml
Building lxml version 2.3.5.
Building with Cython 0.17.
Using build configuration of libxslt 1.1.27
Building against libxml2/libxslt in the following directory: /usr/local/lib
skipping 'src/lxml/lxml.etree.c' Cython extension (up-to-date)
building 'lxml.etree' extension
llvm-gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -arch i386 -arch x86_64 -g -O2 -DNDEBUG -g -O3 -I/usr/local/include -I/usr/local/include/libxml2 -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c src/lxml/lxml.etree.c -o build/temp.macosx-10.6-intel-2.7/src/lxml/lxml.etree.o -w -flat_namespace
llvm-gcc-4.2 -bundle -undefined dynamic_lookup -arch i386 -arch x86_64 -g build/temp.macosx-10.6-intel-2.7/src/lxml/lxml.etree.o -L/usr/local/lib -lxslt -lexslt -lxml2 -lz -lm -o build/lib.macosx-10.6-intel-2.7/lxml/etree.so
skipping 'src/lxml/lxml.objectify.c' Cython extension (up-to-date)
building 'lxml.objectify' extension
llvm-gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -arch i386 -arch x86_64 -g -O2 -DNDEBUG -g -O3 -I/usr/local/include -I/usr/local/include/libxml2 -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c src/lxml/lxml.objectify.c -o build/temp.macosx-10.6-intel-2.7/src/lxml/lxml.objectify.o -w -flat_namespace
llvm-gcc-4.2 -bundle -undefined dynamic_lookup -arch i386 -arch x86_64 -g build/temp.macosx-10.6-intel-2.7/src/lxml/lxml.objectify.o -L/usr/local/lib -lxslt -lexslt -lxml2 -lz -lm -o build/lib.macosx-10.6-intel-2.7/lxml/objectify.so
Successfully installed lxml
Cleaning up...
bash-3.2$ python
Python 2.7.3 (v2.7.3:70274d53c1dd, Apr 9 2012, 20:52:43)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import lxml
>>> import html
Traceback (most recent call last):
File "", line 1, in
ImportError: No module named html
>>> from lxml import html
Traceback (most recent call last):
File "", line 1, in
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/lxml/html/__init__.py", line 12, in
from lxml import etree
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/lxml/etree.so, 2): Symbol not found: _exsltDateXpathCtxtRegister
Referenced from: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/lxml/etree.so
Expected in: flat namespace
in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/lxml/etree.so
对于旧版本的lxml2.3.4再次遇到相同的错误
get same error again for older version lxml2.3.4
bash-3.2$ pip install lxml-2.3.4.tgz
Unpacking ./lxml-2.3.4.tgz
Running setup.py egg_info for package from file:///Users/apple/workspace/pythonhome/misc/lxml-2.3.4.tgz
Building lxml version 2.3.4.
Building with Cython 0.17.
Using build configuration of libxslt 1.1.27
Building against libxml2/libxslt in the following directory: /usr/local/lib
warning: no previously-included files found matching '*.py'
Installing collected packages: lxml
Running setup.py install for lxml
Building lxml version 2.3.4.
Building with Cython 0.17.
Using build configuration of libxslt 1.1.27
Building against libxml2/libxslt in the following directory: /usr/local/lib
skipping 'src/lxml/lxml.etree.c' Cython extension (up-to-date)
building 'lxml.etree' extension
llvm-gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -arch i386 -arch x86_64 -g -O2 -DNDEBUG -g -O3 -I/usr/local/include -I/usr/local/include/libxml2 -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c src/lxml/lxml.etree.c -o build/temp.macosx-10.6-intel-2.7/src/lxml/lxml.etree.o -w -flat_namespace
llvm-gcc-4.2 -bundle -undefined dynamic_lookup -arch i386 -arch x86_64 -g build/temp.macosx-10.6-intel-2.7/src/lxml/lxml.etree.o -L/usr/local/lib -lxslt -lexslt -lxml2 -lz -lm -o build/lib.macosx-10.6-intel-2.7/lxml/etree.so
skipping 'src/lxml/lxml.objectify.c' Cython extension (up-to-date)
building 'lxml.objectify' extension
llvm-gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -arch i386 -arch x86_64 -g -O2 -DNDEBUG -g -O3 -I/usr/local/include -I/usr/local/include/libxml2 -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c src/lxml/lxml.objectify.c -o build/temp.macosx-10.6-intel-2.7/src/lxml/lxml.objectify.o -w -flat_namespace
llvm-gcc-4.2 -bundle -undefined dynamic_lookup -arch i386 -arch x86_64 -g build/temp.macosx-10.6-intel-2.7/src/lxml/lxml.objectify.o -L/usr/local/lib -lxslt -lexslt -lxml2 -lz -lm -o build/lib.macosx-10.6-intel-2.7/lxml/objectify.so
Successfully installed lxml
Cleaning up...
bash-3.2$ python
Python 2.7.3 (v2.7.3:70274d53c1dd, Apr 9 2012, 20:52:43)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> import lxml
>>> from lxml import etree
Traceback (most recent call last):
File "", line 1, in
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/lxml/etree.so, 2): Symbol not found: _exsltDateXpathCtxtRegister
Referenced from: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/lxml/etree.so
Expected in: flat namespace
in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/lxml/etree.so
答
另请参见我认为这里的关键错误是:
I think the key error here is this:
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/lxml/etree.so, 2): Symbol not found: _exsltDateXpathCtxtRegister
我在
他们的建议:
您可能需要检查libxml/libxslt库.确保您具有 lxml安装说明
You probably need to check your libxml/libxslt libraries. Make sure you have the versions required in the lxml installation instructions
开始运行
ldd /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/lxml/etree.so
这将显示您是否有任何未解析的共享库.您可能需要安装/更新一些软件包.
That will show if you have any unresolved shared libraries. You may need to install/update some packages.
检查上面链接的线程以获取更多故障排除提示.
Check the thread linked above for more troubleshooting tips.