ImportError: No module named Cython.Distutils
Je vais avoir un problème étrange, tout en essayant d'installer la bibliothèque Python zenlib
, à l'aide de son setup.py
fichier. Quand je lance le setup.py
fichier, j'obtiens un message d'erreur d'importation, en disant
ImportError: No module named Cython.Distutils`
mais j'ai un tel module, et je peux l'importer sur le python en ligne de commande, sans aucun problème. Pourquoi pourrais-je recevoir ce message d'erreur d'importation?
Je pense que le problème peut avoir à faire avec le fait que je suis en utilisant Enthought Distribution Python, lequel j'ai installé le droit à l'avance, plutôt que d'utiliser le Python 2.7 qui est venu avec Ubuntu 12.04.
Plus d'arrière-plan:
Voici exactement ce que j'obtiens lorsque vous essayez d'exécuter 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
Mais il fonctionne à partir de la ligne de commande:
>>> 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
Note la première importation travaillé et le second renvoie une erreur. Comparez cela aux premières lignes de 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
J'ai fait en sorte que le Enthought Distribution Python et pas le python qui est venu avec Ubuntu, c'est ce qui est exécutée par défaut en ajoutant mon bash $variable d'environnement PATH en édition ~/.bashrc
, en ajoutant ce que la dernière ligne:
export PATH=/usr/local/epd/bin:$PATH
et en effet which python
crache /usr/local/epd/bin/python
... ne sachant pas quoi d'autre à essayer, je suis allé dans mon site répertoire packages, (/usr/local/epd/lib/python2.7/site-packages
) et de donner des autorisations complètes (r,w,x) pour Cython
, Distutils
, build_ext.py
, et la __init__.py
fichiers. Probablement idiot d'essayer, et ça n'a rien changé.
Ne peut pas penser de ce à essayer ensuite!? Des idées?
- Je ne peux pas penser à quelque chose, mais ce qui est dans votre
sys.path
? - ne
sudo python -c 'import Cython.Distutils'
travail? - Mon experiemnt donné le même résultat, j'ai di une installation de Python 2.7 sur ubuntu 12-04, cython, numpy,scipy. Même erreur Traceback (most recent call last): File "setup.py", line 4, in <module> à partir de Cython.Distutils importation build_ext ImportError: No module named Cython.Distutils . Aucune des réponses semblent avoir résolu le problème. Chers Experts de l'AIDE!!!
- Pour les personnes qui trouvent ça via google:
sudo apt-get install python-dev; sudo pip install cython
Vous devez vous connecter pour publier un commentaire.
Votre sudo n'est pas d'obtenir le droit de python. C'est un comportement connu de sudo sous Ubuntu. Voir ce question pour plus d'info. Vous devez vous assurer que sudo appelle le droit python, en utilisant le chemin d'accès complet:
ou en procédant comme suit (en bash):
Installer Cython:
Exécuter
C'est le chemin vers le python que votre système a manqué trop
ensuite, allez à @tiago de la méthode:
Pour python3 utilisation
Pour python2 utilisation
Détails peuvent être lus à cette
J'ai reçu un seul conseil pour vous : Créer un virtualenv. Cela permettra d'assurer que vous avez une seule version de python et de tous les paquetages installés localement (et non pas sur l'ensemble de votre système).
Devrait être une des solutions.
Dans l'interface de ligne de commande python import sys et regardez ce qui se trouve à l'intérieur de sys.chemin
Ensuite, essayez d'utiliser
export PYTHONPATH=whatyougot
A couru dans tout cela de nouveau dans les temps modernes. La solution est simple:
Qui est facile.
Vous pouvez essayer de
install cython
package tout d'abord.Il va mise à niveau de votre easy_install construit en python.
Exécutant les commandes suivantes résolu le problème pour moi sous ubuntu 14.04:
Ce lien qui m'a aidé: https://github.com/trezor/python-trezor/issues/40
Il suffit d'installer Cython de
http://cython.org/#download
et de l'installer à l'aide de cette commande
Puis exécutez la commande
et qu'il sera installé et le message d'erreur disparaît.