i have installed an lxml on my mac, when i type in python like this
localhost:lxml-3.0.1 apple$ 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. >>> 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-3.0.1-py2.7-macosx-10.6-intel.egg/lxml/etree.so, 2): Symbol not found: ___xmlStructuredErrorContext Referenced from: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/lxml-3.0.1-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-3.0.1-py2.7-macosx-10.6-intel.egg/lxml/etree.so
I had the same problem. If you have installed it with pip as follows: pip install lxml
Instead, try to use
STATIC_DEPS=true pip install lxml
This solved the problem for me.
Found at this website
If you've installed libxml2
, then it's possible that it's just not picking up the right version (there's a version installed with OS X by default). In particular, suppose you've installed libxml2
to /usr/local
. You can check what shared libraries etree.so
references:
$> otool -L /Library/Python/2.7/site-packages/lxml-3.2.1-py2.7-macosx-10.7-intel.egg/lxml/etree.so
/Library/Python/2.7/site-packages/lxml-3.2.1-py2.7-macosx-10.7-intel.egg/lxml/etree.so:
/usr/lib/libxslt.1.dylib (compatibility version 3.0.0, current version 3.24.0)
/usr/local/lib/libexslt.0.dylib (compatibility version 9.0.0, current version 9.17.0)
/usr/lib/libxml2.2.dylib (compatibility version 10.0.0, current version 10.3.0)
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0)
Checking for that symbol in the system-installed version:
$> nm /usr/lib/libxml2.2.dylib | grep ___xmlStructuredErrorContext
For me, it's not present in the system-installed library. In the version I installed, however:
$> nm /usr/local/lib/libxml2.2.dylib | grep ___xmlStructuredErrorContext
000000000007dec0 T ___xmlStructuredErrorContext
To solve this, make sure your install path appears first in DYLD_LIBRARY_PATH
:
$> export DYLD_LIBRARY_PATH=/usr/local/lib
$> python
>>> from lxml import etree
# Success!
If you are having this problem in 2022 on an M1 Mac, try this:
pip3 uninstall lxml
pip3 install lxml
This will both upgrade lxml to the latest version (4.7.1 vs. 4.6.3 in my case) and clear files that could be causing issues per other anecdotal evidence on this problem.
Run the following command to install the lxml package.
pip install lxml --user
should fix the issue. I tested it on MAC OSX 10.7.5, it worked fine.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.