python ImportError: Cython.Distutils

У меня возникла странная проблема при попытке установить библиотеку python с помощью файла setup.py. когда я запускаю файл setup.py, я получаю ошибку импорта, говоря, что ImportError: No module named Cython.Distutils , но у меня есть такой модуль, и я могу без проблем импортировать его в командной строке python. Почему я могу получить эту ошибку импорта?

Я просмотрел несколько десятков случаев ошибок импорта, прочитал об импорте и пакетах и ​​т. Д., Но, похоже, не может понять это. Я сейчас на два-два дня застрял на этом, поэтому считаю, что пришло время попросить о помощи!

Библиотека называется zenlib. Я думаю, что проблема может быть связана с тем фактом, что я использую Enthought Python Distribution, который я установил заранее, вместо использования Python2.7, который поставляется с Ubuntu 12.04.

Больше фона: вот что я получаю при попытке запустить setup.py:

 enwe101@enwe101-PCL:~/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 . Наверное, глупо пытаться, и ничего не изменилось.

Не могу придумать, что попробовать дальше !? Есть идеи?

  • Как python загружает все значения в sys.path?
  • Какой хороший способ заменить международных персонажей их базовыми латинскими аналогами с помощью Python?
  • Центр сертификации для imaplib и poplib python
  • Переместить мяч внутри Tkinter Canvas Widget (простая игра в арканоиде)
  • SQLAlchemy: создание или повторное использование сеанса
  • Spark: Dataframe.subtract возвращает все, когда ключ не является первым в строке
  • Марк клещей в латексе в matplotlib
  • PIL: Ошибка загрузки DLL: указанная процедура не найдена
  • 8 Solutions collect form web for “python ImportError: Cython.Distutils”

    Ваш sudo не получает правильный питон. Это известное поведение sudo в Ubuntu. См. Этот вопрос для получения дополнительной информации. Вы должны убедиться, что sudo вызывает правильный питон, используя полный путь:

     sudo /usr/local/epd/bin/python setup.py install 

    или выполнив следующее (в bash):

     alias sudo='sudo env PATH=$PATH' sudo python setup.py install 

    Установите Cython:

     pip install cython 

    Бег

    which python

    Это путь к питону, который ваша система также выполнила по умолчанию, а затем перейдите к методу @ tiago:

    sudo <output of which python> setup.py install

    У меня есть только один совет для вас: Создайте виртуальный. Это гарантирует, что у вас есть только одна версия python и все ваши пакеты, установленные локально (а не на всей вашей системе).
    Должно быть одним из решений.

    Для использования python3

     sudo apt-get install cython3 

    Для использования python2

     sudo apt-get install cython 

    Подробности можно прочитать на этом

    В CLI-python импортируйте sys и посмотрите, что внутри sys.path
    Затем попробуйте использовать export PYTHONPATH=whatyougot

    Это просто.

    install cython вы можете попробовать install cython пакет install cython .

    Он обновит вашу easy_install, встроенную в python.

    Просто установите Cython из http://cython.org/#download и установите его с помощью этой команды.

     sudo python setup.py install 

    Затем запустите команду

     sudo python -c 'import Cython.Distutils' 

    и он будет установлен, и сообщение об ошибке исчезнет.

    Python - лучший язык программирования в мире.