2012-05-23 20 views
30

He logrado que spyder esté instalado y funcionando en mi mac, pero quiero agregar algunos módulos que no incluye de manera predeterminada (mahotas y pymorph) .Agregar un módulo (Específicamente pymorph) a Spyder (Python IDE)

Instalé ambos vía easy_install en el terminal y ambos parecían instalarse sin ningún mensaje de error. Ejecutando python desde una terminal y usando import mahotas y import pymorph funciona muy bien sin mensajes de error. Sin embargo, cuando ejecuto el mismo sentido desde un script dentro de spyder me sale el siguiente error:

Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/spyderlib/widgets/externalshell/sitecustomize.py", line 493, in runfile 
execfile(filename, namespace) 
File "/Users/Name/Documents/Python/dna.py", line 11, in <module> 
import pymorph 
ImportError: No module named pymorph 

Todo lo que estoy tratando de hacer ahora es ejecutar las líneas de importación, eso es todo. Parece que no puedo encontrar nada sobre esto. Supongo que spyder usa una instalación separada de python y que la instalación de módulos a través del terminal los instala solo a la versión del sistema de python. ¿Cómo los agrego a spyder?

Especificaciones:

Mac OS X 10.7.4

Spyder 2.1.9

Respuesta

63

Ok, nadie ha respondido a esta todavía, pero me las arreglé para entenderlo y hacerlo funcionar después también publicando en los foros de discusión de spyder. Para cualquier biblioteca que desee agregar que no esté incluida en la ruta de búsqueda predeterminada de spyder, debe ingresar a Herramientas y agregar una ruta a cada biblioteca a través del administrador PYTHONPATH. Luego deberá actualizar la lista de nombres de módulos del mismo menú y reiniciar spyder antes de que los cambios entren en vigencia.

+8

Gracias - trabajado para mí. Pero también, no es necesario reiniciar Spyder, simplemente cierre el intérprete, luego haga clic derecho y "abra el intérprete" para reiniciar el intérprete de Python. La nueva ruta es usada. –

+1

Una vez que implementa esta solución, parece que todo lo que llame al archivo ibpy EReader puede fallar en la línea 29 con 'SyntaxError: no se puede asignar a None'. Si obtiene esto eliminar o comentar 'Ninguno'. [Referencia] (https://code.google.com/p/ibpy/issues/detail?id=16) – zelusp

+0

En el menú Spyder/PYTONPATH Manager –

16
  1. Encuentra la ubicación de un módulo en el terminal:

    $ python # open python 
    
    import pygame # import a module 
    
    pygame # get the location 
    
  2. Copiar y pegar la carpeta del módulo a la 'Spyder.app/Contents/Resources/lib/python2.7'

  3. Relanzamiento Spyder.app

2

puede añadir la ubicación de instalación estándar para el hombre PYTHONPATH Ager. De esta forma, no necesita agregar una ruta específica para cada módulo. Solo para actualizar los nombres de los módulos.

En Unix esta ubicación suele ser:

/usr/local/lib/pythonX.Y/site-packages

En Windows:

C:\PythonXY\Lib\site-packages

Ver the modules install Documentation.

2

que enfrentan el mismo problema cuando se trata de añadir el módulo Seaborn en Spyder. Instalé Seaborn en mi directorio anaconda en ubuntu 14.04. El módulo seaborn se cargaría si añadiera todo el directorio anaconda/lib/python2.7/site-packages/que contenía las carpetas 'seaborn' y seaborn-0.5.1-py2.7.egg-info. El problema era que esta carpeta anaconda site-packages también contenía muchos otros módulos que no le gustaban a Spyder.

Mi solución: Creé un nuevo directorio en mi carpeta de inicio personal que denominé 'spyderlibs' donde coloqué las carpetas seaborn y seaborn-0.5.1-py2.7.egg-info. Agregando mi nuevo directorio spyderlib en el administrador PYTHONPATH de Spyder funcionó!

+0

Lamento comentar una respuesta anterior, pero hoy estaba teniendo este problema exacto con Spyder y seaborn, y no había una única respuesta en cualquier sitio web que ayudó excepto la tuya. Así que gracias. –

+0

Como una adición a mi comentario anterior (¡espero que vea esto!) ¿Cómo se solucionó el problema en el que el intérprete de spyder ahora toma __init__.py de seaborn como si fuera el __init__.py de lo que estoy tratando de usar? En este caso, rompió mpfit y algunas otras cosas. ¿Alguna vez encontraste otra solución? –

+0

Me alegro de que funcionó ... hasta cierto punto. No recuerdo haber encontrado problemas con init.py, así que no estoy seguro de qué recomendar. Recientemente instalé un nuevo sistema operativo y recientemente instalado Python 2.7, anaconda y spyder. Ahora Seaborn milagrosamente funciona desde una nueva instalación de línea de comando de conda, ya no es necesario para la solución que presenté anteriormente. – Guy

24

El uso de ! en la consola IPython dentro de spyder le permite usar pip. Así, en el ejemplo, se podría hacer:

[1] !pip install pymorph 

Nota, esto también está disponible (aunque tal vez no fiable) en la consola de Python para las versiones Spyder antes ~ 2.3.3. Gracias a @CarlosCordoba por esta aclaración.

+0

Parece que estás usando una versión antigua de Spyder. Esta funcionalidad fue eliminada hace algunas versiones (creo en 2.3.3). Sin embargo, algo así todavía funciona con la consola IPython. –

+0

@CarlosCordoba Ah, vale. Estoy usando la versión 2.2.5. Es una lástima que se eliminó, sigue siendo un gran IDE :-) – atomh33ls

+0

Tuvimos que eliminarlo de nuestras consolas * Python * porque no funcionaba de manera confiable en todas las situaciones (por ejemplo, dio problemas al depurar).Pero, como dije, puedes ejecutar exactamente el mismo comando en nuestras consolas * IPython * y funcionará muy bien :-) –

7

Si está utilizando Spyder en el paquete Anaconda ...

En la consola IPython, utilice

!conda install packageName 

Esto funciona a nivel local también.

!conda install /path/to/package.tar 

Nota: ¡la! es obligatorio cuando se usa la consola IPython desde Spyder.

0

También se pueden seguir los siguientes pasos: '!' Spyder -> Herramientas -> Abrir - Símbolo del sistema> escriba la orden "PIP instalar html5lib"

0

sólo tiene que utilizar antes del comando en el terminal de pepita spyder y que estará bien

Ej:

!pip install imutils 
Cuestiones relacionadas