Я делаю проект с tox
тестированием и использованием fasttext
пакета Python. fasttext
использует cython. Я столкнулся с ошибкой cython во время настройки среды tox: ImportError: No module named Cython.Build
.
Я могу заставить его работать, если позволю tox использовать пакеты сайтов.
Я создал небольшой тест, который выдает такое же сообщение об ошибке:
tox.ini
:
[tox]
envlist = py27
[testenv:py27]
# sitepackages=True
commands =
python -m pytest --doctest-modules testinstall.py
deps=
pytest
cython
fasttext
setup.py
:
from setuptools import setup
setup(
setup_requires=['cython'],
install_requires=['cython', 'fasttext'],
)
Ошибка, которую я получаю от tox, гласит:
Collecting pytest
Using cached pytest-3.0.6-py2.py3-none-any.whl
Collecting cython
Using cached Cython-0.25.2-cp27-cp27mu-manylinux1_x86_64.whl
Collecting fasttext
Using cached fasttext-0.8.3.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-build-8NfmOs/fasttext/setup.py", line 3, in <module>
from Cython.Build import cythonize
ImportError: No module named Cython.Build
Я вижу, что возникла проблема с порядком установки зависимостей pip
, см., например, https://github.com/h5py/h5py/issues/535, но у меня сложилось впечатление, что эта проблема решена.
Я вижу обходной путь в setup_requires with Cython?, но не вижу, чтобы мой модуль мог его использовать обходной путь.
Это проблема fasttext
? Или я пропускаю какую-то настройку?