通过 pip 成功安装 lxml 后,我在 Python 命令行中执行"from lxml import etree"时出错


bash-3.2$pip-install lxml-2.3.5.tgz开箱/lxml-2.3.5.tgz从运行包的setup.py egg_infofile:///Users/apple/workspace/pythonhome/misc/lxml-2.3.5.tgz正在构建lxml 2.3.5版本。使用Cython 0.17构建。使用libxslt 1.1.27的内部版本配置在以下目录中根据libxml2/libxslt构建:/usr/local/lib警告:未找到与"*.py"匹配的以前包含的文件正在安装收集的包:lxml运行setup.py install for lxml正在构建lxml 2.3.5版本。使用Cython 0.17构建。使用libxslt 1.1.27的内部版本配置在以下目录中根据libxml2/libxslt构建:/usr/local/lib正在跳过"src/lxml/lxml.etre.c"Cython扩展(最新)正在生成"lxml.etree"扩展llvm-gcc-4.2-fno严格别名-fno公共动态-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_namespacellvm-gcc-4.2-bundle-未定义的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正在跳过"src/lxml/lxml.objectify.c"Cython扩展(最新)正在生成"lxml.objectify"扩展llvm-gcc-4.2-fno严格别名-fno公共动态-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/objectify.o-w flat_namespacellvm-gcc-4.2-bundle-未定义的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已成功安装lxml正在清理。。。bash-3.2$pythonPython 2.7.3(v2.7.3:70274d53c1dd,2012年4月9日,20:52:43)[通用条款第4.2.1条(Apple股份有限公司版本5666)(第3点)]键入"帮助"、"版权"、"信用"或"许可证"以获取详细信息。>>>导入lxml>>>导入html追踪(最近一次通话):文件",第1行,在ImportError:没有名为html的模块>>>从lxml导入html追踪(最近一次通话):文件",第1行,在文件"/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site packages/lxml/html/__init__.py",第12行,位于从lxml导入etreeImportError:dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/lxml/etree.so,2):未找到符号:_exsltDateXpathCxtRegister引用自:/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/lxml/etree.so应为:平面命名空间在/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site packages/lxml/etree.so

中,旧版本lxml2.3.4再次出现相同错误

bash-3.2$pip安装lxml-2.3.4.tgz开箱/lxml-2.3.4.tgz从运行包的setup.py egg_infofile:///Users/apple/workspace/pythonhome/misc/lxml-2.3.4.tgz正在构建lxml 2.3.4版本。使用Cython 0.17构建。使用libxslt 1.1.27的内部版本配置在以下目录中根据libxml2/libxslt构建:/usr/local/lib警告:未找到与"*.py"匹配的以前包含的文件正在安装收集的包:lxml运行setup.py install for lxml正在构建lxml 2.3.4版本。使用Cython 0.17构建。使用libxslt 1.1.27的内部版本配置在以下目录中根据libxml2/libxslt构建:/usr/local/lib正在跳过"src/lxml/lxml.etre.c"Cython扩展(最新)正在生成"lxml.etree"扩展llvm-gcc-4.2-fno严格别名-fno公共动态-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_namespacellvm-gcc-4.2-bundle-未定义的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正在跳过"src/lxml/lxml.objectify.c"Cython扩展(最新)正在生成"lxml.objectify"扩展llvm-gcc-4.2-fno严格别名-fno公共动态-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/objectify.o-w flat_namespacellvm-gcc-4.2-bundle-未定义的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已成功安装lxml正在清理。。。bash-3.2$pythonPython 2.7.3(v2.7.3:70274d53c1dd,2012年4月9日,20:52:43)[通用条款第4.2.1条(Apple股份有限公司版本5666)(第3点)]键入"帮助"、"版权"、"信用"或"许可证"以获取详细信息。>>>导入操作系统>>>导入lxml>>>从lxml导入etree追踪(最近一次通话):文件",第1行,在ImportError:dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/lxml/etree.so,2):未找到符号:_exsltDateXpathCxtRegister引用自:/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/lxml/etree.so应为:平面命名空间在/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site packages/lxml/etree.so
p>另请参阅将lxml.etree导入python 时的错误

我认为这里的关键错误是:

ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/lxml/etree.so, 2): Symbol not found: _exsltDateXpathCtxtRegister

我在lxml开发列表中发现了另一个有同样问题的人。

他们的建议:

您可能需要检查您的libxml/libxslt库。确保您拥有lxml安装说明中所需的版本

通过运行启动

ldd /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/lxml/etree.so

这将显示您是否有任何未解析的共享库。您可能需要安装/更新一些软件包。

有关更多疑难解答提示,请查看上面链接的线程。

嘿,我试过使用Conda环境,它成功了。默认venv似乎在M1硅上运行得很糟糕。

您必须通过以下命令进行安装:

conda install -c conda-forge requests-html

最新更新