Importar un módulo de Python funciona desde la línea de comandos, pero no desde PyCharm


8

Mi binario predeterminado de Python está configurado en el que tiene la distribución Anaconda de Python. Esto se encuentra en /home/karnivaurus/anaconda/bin/python, y he hecho esto el defecto mediante la adición a mi .bashrcarchivo de la siguiente: export PATH=/home/karnivaurus/anaconda/bin:$PATH.

También tengo un paquete de Python llamada caffe, que se encuentra en /home/karnivaurus/caffe/distribute/python, y he añadido esto a la ruta de búsqueda de paquetes añadiendo a mi .bashrcarchivo de la siguiente: export PYTHONPATH=${PYTHONPATH}:/home/karnivaurus/caffe/distribute/python.

Ahora, tengo un archivo Python simple, llamado test.py, con los siguientes contenidos:

import caffe
print "Done."

Si ejecuto esto entrando python test.pyen la terminal, funciona bien, imprimiendo "Listo". El problema que tengo es cuando ejecuto esto en PyCharm IDE. En PyCharm, he configurado el intérprete para ser /home/karnivaurus/anaconda/bin/python. Pero cuando abro test.pyen PyCharm y ejecuto el archivo en el IDE, aparece el siguiente error:

ImportError: No module named caffe

Entonces mi pregunta es: ¿Por qué PyCharm no puede encontrar el caffemódulo cuando ejecuta el script Python, pero puede encontrarse cuando ejecuto el script desde la terminal?

¡Gracias!


2
Supongo que PyCharm no se preocupa por ti .bashrc, ya que es un archivo de configuración específico de bash. Debe configurar esa variable en PyCharm o, por ejemplo.profile
Byte Commander

Respuestas:


11

Como ByteCommander dijo en un comentario, PyCharm no usa bashrc, por lo que no sabe dónde está su biblioteca.

En la misma pantalla donde agregó el intérprete, puede ver el icono de una rueda, hacer clic en él, le mostrará un menú, haga clic en más. Deberías ver una pantalla como esta:

Configuración del intérprete PyCharm

Debe seleccionar su intérprete y hacer clic en el último botón. Esto debería abrir esta ventana:

Configuración de rutas de intérprete

Ahora, haciendo clic en el icono más, debería poder agregar sus propias rutas para las bibliotecas.


2
Y este es un buen ejemplo sobre por qué dar instrucciones es más fácil con la línea de comandos que con las GUI.
Javier Rivera

Gracias. ¿Es esta la forma de agregar rutas para bibliotecas binarias y módulos de Python? ¿O deberían agregarse módulos Python a la "raíz de origen"?
Karnivaurus

1
Ambos. Solo debe usar Source Root si va a realizar cambios en esos módulos (no es necesario agregarlos a Source Root para completar, documentar o 'ir a la fuente' para trabajar).
Javier Rivera

5

Los programas iniciados desde el iniciador de Ubuntu no se leen.bashrc . Como alternativa a configurar las rutas en PyCharm, simplemente puede iniciar PyCharm desde un shell Bash para darle acceso a las variables de entorno que establezca .bashrc.


¿Hay alguna manera de hacer que los programas lean el archivo .bash_rc cuando se inician desde el iniciador?
Usuario007

0

Abra el siguiente acceso directo ( Ctrl+ Alt+ S) y haga clic en (Proyecto: xxxx), ahora elija (Estructura del proyecto) y seleccione ( /home/yourUser/PycharmProjects/XXXX/venv/bin) y haga clic con el botón derecho (Excluido) o ( Alt+ E).

Ahora haga clic en (+ Agregar raíz de contenido) y vea si apunta a la siguiente ubicación ( /home/ yourUser/PycharmProjects/XXXXX/venv/bin) y haga clic en Aceptar. Ahora cierre el IDE y ábralo nuevamente.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.