【问题标题】:i have an error when executing "from lxml import etree" in the python command line after successfully installed lxml by pip通过 pip 成功安装 lxml 后,在 python 命令行中执行“from lxml import etree”时出现错误
【发布时间】:2012-11-13 10:11:49
【问题描述】:
bash-3.2$ pip install lxml-2.3.5.tgz 解压 ./lxml-2.3.5.tgz 从 file:///Users/apple/workspace/pythonhome/misc/lxml-2.3.5.tgz 为包运行 setup.py egg_info 构建 lxml 版本 2.3.5。 使用 Cython 0.17 构建。 使用 libxslt 1.1.27 的构建配置 在以下目录中针对 libxml2/libxslt 构建:/usr/local/lib 警告:未找到与“*.py”匹配的先前包含的文件 安装收集的包:lxml 为 lxml 运行 setup.py install 构建 lxml 版本 2.3.5。 使用 Cython 0.17 构建。 使用 libxslt 1.1.27 的构建配置 在以下目录中针对 libxml2/libxslt 构建:/usr/local/lib 跳过 'src/lxml/lxml.etree.c' Cython 扩展(最新) 构建“lxml.etree”扩展 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 跳过 'src/lxml/lxml.objectify.c' Cython 扩展(最新) 构建“lxml.objectify”扩展 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 lxml安装成功 打扫干净... bash-3.2$ 蟒蛇 Python 2.7.3(v2.7.3:70274d53c1dd,2012 年 4 月 9 日,20:52:43) [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] 在 darwin 输入“帮助”、“版权”、“信用”或“许可”以获取更多信息。 >>> 导入 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 导入 etree ImportError:dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/lxml/etree.so,2):找不到符号:_exsltDateXpathCtxtRegister 引用自:/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 install lxml-2.3.4.tgz 解压 ./lxml-2.3.4.tgz 从 file:///Users/apple/workspace/pythonhome/misc/lxml-2.3.4.tgz 为包运行 setup.py egg_info 构建 lxml 版本 2.3.4。 使用 Cython 0.17 构建。 使用 libxslt 1.1.27 的构建配置 在以下目录中针对 libxml2/libxslt 构建:/usr/local/lib 警告:未找到与“*.py”匹配的先前包含的文件 安装收集的包:lxml 为 lxml 运行 setup.py install 构建 lxml 版本 2.3.4。 使用 Cython 0.17 构建。 使用 libxslt 1.1.27 的构建配置 在以下目录中针对 libxml2/libxslt 构建:/usr/local/lib 跳过 'src/lxml/lxml.etree.c' Cython 扩展(最新) 构建“lxml.etree”扩展 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 跳过 'src/lxml/lxml.objectify.c' Cython 扩展(最新) 构建“lxml.objectify”扩展 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 lxml安装成功 打扫干净... bash-3.2$ 蟒蛇 Python 2.7.3(v2.7.3:70274d53c1dd,2012 年 4 月 9 日,20:52:43) [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] 在 darwin 输入“帮助”、“版权”、“信用”或“许可”以获取更多信息。 >>> 导入操作系统 >>> 导入 lxml >>> 从 lxml 导入 etree 回溯(最近一次通话最后): 文件“”,第 1 行,在 ImportError:dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/lxml/etree.so,2):找不到符号:_exsltDateXpathCtxtRegister 引用自:/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

【问题讨论】:

    标签: macos python-2.7 lxml llvm-gcc elementtree


    【解决方案1】:

    另见get errors when import lxml.etree to python

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

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

    我找到了another person with the same problem on an lxml dev list

    他们的建议:

    您可能需要检查您的 libxml/libxslt 库。确保您拥有lxml installation instructions 中所需的版本

    从跑步开始

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

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

    查看上面链接的主题以获得更多故障排除提示。

    【讨论】:

      【解决方案2】:

      嘿,我尝试过使用 Conda 环境,它成功了。默认的 venv 似乎在 M1 芯片上运行得非常糟糕。

      你必须通过这个命令安装:

      conda install -c conda-forge requests-html
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-04-09
        • 2013-08-05
        • 2016-12-21
        • 2013-04-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多