python-3.x lxml导入失败,出现错误"在平面命名空间“_xsltDocDefaultLoader”中找不到符号“

dojqjjoe  于 2023-02-26  发布在  Python
关注(0)|答案(2)|浏览(272)

代码:

from lxml.etree import HTML, XML

我得到了回溯:

Traceback (most recent call last):
  File "/Users/username/code/project/lxml-test.py", line 3, in <module>
    from lxml.etree import HTML, XML
ImportError: dlopen(/Users/username/.virtualenvs/project-venv/lib/python3.11/site-packages/lxml/etree.cpython-311-darwin.so, 0x0002): 
symbol not found in flat namespace '_xsltDocDefaultLoader'

我用的是mac m1芯片。
我通过brew安装了libxml 2和libxslt。
我在虚拟环境中运行python 3.11。

我的尝试:

  • 用pip卸载并重新安装lxml,并尝试了几个不同的版本。(4.7.1和4.8.0没有编译。所有的4.9.0,1,2版本都给予了上述错误)
  • 通过brew安装libxml 2和libxslt,然后重新安装python-lxml。
  • 通过conda安装python-lxml(as suggested here
编辑:

我在lxml的bug报告论坛中发布了这个bug,并被告知这是一个高度重复的Missing wheel for macos with M1 Edit bug报告

sczxawaw

sczxawaw1#

最近,我在使用M1 Pro芯片的笔记本电脑上尝试在3. 9 Virtualenv中安装python-docx模块时遇到了类似的问题。
这个答案帮助我解决了这个问题:Unable to install python-docx (MacOS)
基本上,您需要首先在virtualenv中安装带有pip的setuptools,然后尝试安装带有pip的lxml:

pip install -U setuptools

希望这能帮上忙。

jdgnovmf

jdgnovmf2#

我通过克隆lxml、构建它并通过安装它来解决这个问题

pip install -e /path/to/lxml

相关问题