【问题标题】:pip install lxml error with x86_64x86_64 的 pip install lxml 错误
【发布时间】:2016-06-02 20:32:53
【问题描述】:

我在 x86_64 机器上运行 Redhat CEL6。我正在尝试安装“lxml”并继续收到以下错误。尝试安装所有依赖包和开发包,但仍然无法解决此问题。

我尝试重新安装 gcc 也没有帮助。

这里有什么想法吗?这是错误:

building 'lxml.etree' extension
creating build/temp.linux-x86_64-3.4
creating build/temp.linux-x86_64-3.4/src
creating build/temp.linux-x86_64-3.4/src/lxml
gcc -pthread -m32 -Werror=declaration-after-statement -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -m32 -fPIC -I/usr/include/libxml2 -   Isrc/lxml/includes -I/users/cveerapa/pyats/include -I/auto/pysw/cel63/python/3.4.1/include/python3.4m -c src/lxml/lxml.etree.c -o build/temp.linux-x86_64-3.4/src/lxml/lxml.etree.o -w
src/lxml/lxml.etree.c: In function ?PyInit_etree?:
src/lxml/lxml.etree.c:213700: note: variable tracking size limit exceeded with -fvar-tracking-assignments, retrying without
gcc -pthread -shared -m32 build/temp.linux-x86_64-3.4/src/lxml/lxml.etree.o -L/usr/lib64 -lxslt -lexslt -lxml2 -lz -lm -o build/lib.linux-x86_64-3.4/lxml/etree.cpython-34m.so
/usr/bin/ld: skipping incompatible /usr/lib64/libxslt.so when searching for -lxslt
/usr/bin/ld: skipping incompatible /usr/lib64/libxslt.a when searching for -lxslt
/usr/bin/ld: skipping incompatible /usr/lib64/libxslt.so when searching for -lxslt
/usr/bin/ld: skipping incompatible /usr/lib64/libxslt.a when searching for -lxslt
/usr/bin/ld: cannot find -lxslt
collect2: ld returned 1 exit status
error: command 'gcc' failed with exit status 1

【问题讨论】:

    标签: python pip lxml


    【解决方案1】:

    您需要安装所有开发库,但在这种情况下,您似乎正在尝试编译 32 位版本的库,因为您很可能安装了 32 位版本的 Python。

    sudo yum install zlib-devel.i686 libxslt.i686 libxml2-devel.i686 libxslt-devel.i686 python-devel.i686
    

    【讨论】:

    • 它们是最新的:
    • 这个系统正在接收来自 RHN Classic 或 RHN Satellite 的更新。设置安装过程从缓存的主机文件加载镜像速度包 gcc-4.4.7-16.el6.x86_64 已经安装和最新版本包 libxml2-devel-2.7.6-20.el6.x86_64 已经安装和最新版本包 libxslt-devel -1.1.26-2.el6_3.1.x86_64 已安装且最新版本包 python-devel-2.6.6-64.el6.x86_64 已安装且最新版本无事
    • ut "pip install lxml" 失败:################################ ####################### pip install lxml 正在收集 lxml 正在下载 lxml-3.6.0.tar.gz (3.7MB) 100% |???? ??????????????????????????????| 3.7MB 17.3MB/秒
    • src/lxml/lxml.etree.c:213700:注意:使用 -fvar-tracking-assignments 超出了变量跟踪大小限制,在没有 gcc -pthread -shared -m32 build/temp.linux- 的情况下重试x86_64-3.4/src/lxml/lxml.etree.o -L/usr/lib64 -lxslt -lexslt -lxml2 -lz -lm -o build/lib.linux-x86_64-3.4/lxml/etree.cpython-34m.so /usr/bin/ld: 搜索 -lxslt 时跳过不兼容的 /usr/lib64/libxslt.so /usr/bin/ld: 搜索 -lxslt /usr/bin/ld 时跳过不兼容的 /usr/lib64/libxslt.a : 搜索 -lxslt 时跳过不兼容的 /usr/lib64/libxslt.so
    • /usr/bin/ld: 搜索 -lxslt /usr/bin/ld 时跳过不兼容的 /usr/lib64/libxslt.a: 找不到 -lxslt collect2: ld 返回 1 退出状态错误:命令“gcc”失败,退出状态为 1
    【解决方案2】:

    我在我的 RH5.7 上遇到了类似的问题(但 64 位问题)。您的问题是 Linux 上的 32 位 lxml。

    我认为@eandersson 的建议很有用。

    你能检查下面的命令吗?

    1. 找到 /usr/lib* -name libxslt.so
    2. yum list installed libxslt libxslt-devel libxml2 libxml2-devel

    我希望第一个结果有“/usr/lib/libxslt.so”。因为您的安装程序需要 32 位库 (-m32)。

    第二个结果也应该有“.i686”。不仅“.x86_64”的原因与上述相同。

    如果两者都与我的预期不同,您可以运行以下命令:

    • yum install libxslt libxslt-devel libxml2 libxml2-devel

      • 实际上你需要其中一些,但我之前没有猜到。

    希望对大家有所帮助。

    【讨论】:

      猜你喜欢
      • 2016-07-01
      • 2014-04-09
      • 2015-09-14
      • 2014-08-11
      • 1970-01-01
      • 2019-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多