python importerror enthought

python - ImportError: Ningún módulo llamado Cython.Distutils



enthought (9)

Tengo un problema extraño al intentar instalar la biblioteca de Python zenlib , utilizando su archivo setup.py . Cuando ejecuto el archivo setup.py , setup.py un error de importación que dice

ImportError: Ningún módulo llamado Cython.Distutils`

pero tengo un módulo así, y puedo importarlo en la línea de comando de Python sin ningún problema. ¿Por qué podría estar recibiendo este error de importación?

Creo que el problema puede tener que ver con el hecho de que estoy usando Enthought Python Distribution , que instalé de antemano, en lugar de usar el Python 2.7 que viene con Ubuntu 12.04.

Más información: esto es exactamente lo que obtengo cuando intento ejecutar 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

Pero funciona desde la línea de comando:

>>> 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

Tenga en cuenta que la primera importación funcionó y la segunda arroja un error. Compare esto con las primeras líneas 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

Me aseguré de que Enthought Python Distribution y no el python que venía con Ubuntu es lo que se ejecuta de manera predeterminada al anteponer mi variable de entorno bash $ PATH editando ~/.bashrc , agregando esto como la última línea:

export PATH=/usr/local/epd/bin:$PATH

y de hecho, which python escupe /usr/local/epd/bin/python ... sin saber qué más probar, /usr/local/epd/bin/python directorio de paquetes de mi sitio, ( /usr/local/epd/lib/python2.7/site-packages ) y otorgar permisos completos (r, w, x) a Cython , Distutils , build_ext.py y los archivos __init__.py . Probablemente sea una tontería intentarlo, y no cambió nada.

No puedo pensar qué probar después? ¿Algunas ideas?


Ejecutar los siguientes comandos resolvió el problema para mí en ubuntu 14.04:

sudo apt-get install python-dev sudo apt-get install libusb-1.0-0-dev sudo apt-get install libsystemd-daemon-dev sudo pip install cython

Este enlace me ayudó: https://github.com/trezor/python-trezor/issues/40


En CLI-python, importa sys y mira lo que hay dentro de sys.path
Luego intente usar export PYTHONPATH=whatyougot


Eso es fácil.

Puede intentar install cython paquete install cython primero.

Mejorará tu easy_install integrado en python.


Instalar Cython:

pip install cython


Para el uso de python3

sudo apt-get install cython3

Para el uso de python2

sudo apt-get install cython

Los detalles se pueden leer en this


Simplemente instala Cython desde http://cython.org/#download e instálalo usando este comando

sudo python setup.py install

Luego ejecuta el comando

sudo python -c ''import Cython.Distutils''

y se instalará y el mensaje de error desaparecerá.


Solo tengo un consejo para ti: crea un virtualenv. Esto garantizará que solo tenga una versión de python y todos sus paquetes instalados localmente (y no en todo su sistema).
Debería ser una de las soluciones.


Tu sudo no está recibiendo la pitón correcta. Este es un comportamiento conocido de sudo en Ubuntu. Vea esta question para más información. Debes asegurarte de que sudo llame al python correcto, ya sea usando la ruta completa:

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

o haciendo lo siguiente (en bash):

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


correr

which python

Esa es la ruta a la pitón que su sistema también ha predeterminado, luego vaya al método de @ tiago de:

sudo <output of which python> setup.py install