Невозможно установить pycocotools на Google AI-Platform (CMLE)
Я получаю эту ошибку пока trainer
установка пакета на AI-Platform,
Traceback (последний вызов последним): файл "", строка 1, в файле "/tmp/pip-install-_u8thvm6/pycocotools/setup.py", строка 2, из Cython.Build import cythonize ImportError: нет модуля с именем 'Cython'
Хотя я включил 'Cython'
в setup.py
.
setup.py:
import setuptools
NAME = 'trainer'
VERSION = '1.0'
REQUIRED_PACKAGES = [
'Cython', # Cython, mentioned before pycocotools
'tensorflow-gpu',
'google-cloud-storage',
'gcsfs',
'pycocotools'
]
setuptools.setup(
name=NAME,
version=VERSION,
packages=setuptools.find_packages(),
install_requires=REQUIRED_PACKAGES,
include_package_data=True,
description='Trainer package')
2 ответа
Добавив эти строки в setup.py
ошибка решена,
import setuptools
# Install cython before setup
import os # <--- This line added
os.system('pip3 install --upgrade cython') # <--- This line added
NAME = 'trainer'
VERSION = '1.0'
REQUIRED_PACKAGES = [
'Cython', # Cython, mentioned before pycocotools
'tensorflow-gpu',
'google-cloud-storage',
'gcsfs',
'pycocotools'
]
setuptools.setup(
name=NAME,
version=VERSION,
packages=setuptools.find_packages(),
install_requires=REQUIRED_PACKAGES,
include_package_data=True,
description='Trainer package')
Перед запуском setup.py необходимо установить cython. Проблема в том, что cython необходим во время сборки, а не во время выполнения, и нет гарантии, в каком порядке пакеты вы указали вinstall_requires
установить. Итак, когда pip пытается установитьpycocotools
он еще не установил cython и прерывается.