繁体   English   中英

Cygwin下Python 3.8如何安装lxml?

[英]How to install lxml in Python 3.8 under Cygwin?

我一直在尝试使用pip installCygwin上的Python3.8下安装cythonlxml包。 但是,这反复失败,出现难以理解的错误,从 python 错误到 gcc header 文件未找到,即使它们存在。

因为lxml依赖于Cython ,所以我们需要确保我们首先让它工作。 不幸的是,Cygwin 的 python3.8 似乎还不支持 cython。 所以我们被告知从这里下载和使用轮子

pip install Cython-0.29.13-cp38-cp38-win32.whl

# This fails with:
#ERROR: Cython-0.29.13-cp38-cp38-win32.whl is not a supported wheel on this platform.

# Instead use:
pip install Cython --install-option="--no-cython-compile"
# OK!

现在让我们尝试安装lxml package。

pip install lxml
# FAIL

STATIC_DEPS=true pip3 install lxml
# FAIL

让我们检查Python.h存在:

# find /usr/include -type f -name "Python.h"
/usr/include/python2.7/Python.h
/usr/include/python3.6m/Python.h
/usr/include/python3.8/Python.h

好的...

那么问题是什么?


相关问题:

唯一可行的方法是下载源代码并从那里安装。 程序是这样的:

git clone https://github.com/lxml/lxml.git lxml
cd lxml
python3.8 setup.py install

pip-date |grep lxml
# lxml     2019-10-15  16:12:05    4.5.0a0   egg    sdist   sys

pip list |grep lxml
# lxml   4.5.0a0

编译失败的原因也可能是因为安装了几个gcc编译器。 因此,尽管我还没有对此进行测试,但您可能需要指定(python?)环境应该使用哪个编译器。

首先找到路径中的编译器:

# ls -1 /usr/bin/*gcc.exe
/usr/bin/gcc.exe
/usr/bin/i686-w64-mingw32-gcc.exe
/usr/bin/x86_64-pc-cygwin-gcc.exe
/usr/bin/x86_64-w64-mingw32-gcc.exe

然后尝试使用(例如)将正确的导出到CC环境变量:

export CC=/usr/bin/x86_64-w64-mingw32-gcc.exe

现在再次测试pip install xxx看看它是否有帮助。 如果是这样,请将上面的行添加到您的~/.bashrc文件中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM