Как установить lxml в Python 3.8 под Cygwin? - PullRequest
0 голосов
/ 15 октября 2019

Я пытался использовать pip install для установки пакетов cython и lxml в Python3.8 на Cygwin . Однако, это часто терпит неудачу с непонятными ошибками, начиная от ошибок python до заголовочных файлов gcc, не найденных, даже если они есть.

Поскольку lxml зависит от Cython, мы должны сначала убедиться, что у нас это работает. К сожалению, Python3.8 Cygwin еще не поддерживает Cython, кажется. Поэтому нам предлагается загрузить и использовать wheel из здесь .

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.

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

ОК ...

Так в чем проблема?


Связанные проблемы:

1 Ответ

0 голосов
/ 15 октября 2019

Единственное, что, похоже, сработало, это скачивание исходников и установка оттуда. Процедура такова:

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.

...