У меня возникла странная проблема при попытке установить библиотеку python с помощью файла setup.py. когда я запускаю файл setup.py, я получаю ошибку импорта, говоря ImportError: No module named Cython.Distutils
, но у меня есть такой модуль, и я могу без проблем импортировать его в командной строке python. Почему я могу получить эту ошибку импорта?
Я просмотрел несколько десятков случаев ошибок импорта, прочитал об импорте и пакетах и т.д., но, похоже, не понял этого. Я сейчас на два-два дня застрял в этом месте, поэтому я рассчитываю на время попросить о помощи!
Библиотека называется zenlib. Я думаю, что проблема может быть связана с тем фактом, что я использую Enthought Python Distribution, которое я установил заранее, вместо того, чтобы использовать Python2.7, который поставляется с Ubuntu 12.04.
Больше фона: Вот именно то, что я получаю при попытке запустить setup.py:
[email protected]:~/zenlib/src$ sudo python setup.py install
Traceback (most recent call last):
File "setup.py", line 4, in <module>
from Cython.Distutils import build_ext
ImportError: No module named Cython.Distutils
Но он работает из командной строки:
>>> from Cython.Distutils import build_ext
>>>
>>> from fake.package import noexist
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named fake.package
Обратите внимание, что первый импорт работал, а второй выдает ошибку. Сравните это с первыми несколькими строками setup.py:
#from distutils.core import setup
from setuptools import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
import os.path
Я убедился, что Enthought Python Distribution, а не питон, который поставляется с Ubuntu, - это то, что запускается по умолчанию, добавляя переменную среды bash $PATH, редактируя ~/.bashrc
, добавляя это как последнюю строку:
export PATH=/usr/local/epd/bin:$PATH
и действительно which python
выскакивает /usr/local/epd/bin/python
... не зная, что еще попробовать, я зашел в каталог моих пакетов пакетов (/usr/local/epd/lib/python2.7/site-packages
) и дал полные разрешения (r, w, x) до Cython
, Distutils
, build_ext.py
и __init__.py
. Наверное, глупо пытаться, и ничего не изменилось.
Не могу придумать, что попробовать дальше!? Любые идеи?