intellij-idea pycharm pythonpath

intellij idea - ¿Cómo configurar PYTHONPATH personalizado con VM y PyCharm?



pycharm interpreter download (6)

Estoy usando IntelliJ con el complemento Python y la función de Intérprete remoto para comunicarme con mi máquina virtual Vagrant. Configura el intérprete remoto correctamente para usar el intérprete de mi VM. Pero, utilizo una PYTHONPATH personalizada en mi VM, y me gustaría que IntelliJ reconozca esa ruta e incluya los módulos en esa ruta al desarrollarla.

¿Cómo configuro el intérprete remoto de IntelliJ / PyCharm para usar una PYTHONPATH personalizada en la VM?


Bueno, puedes hacerlo yendo al cuadro de diálogo del intérprete. Haga clic en el intérprete que está utilizando, y debajo de él, verá dos pestañas, una llamada Paquetes, y la otra llamada Ruta.

Haga clic en Ruta y agregue su ruta de VM a ella.


En mi experiencia, usar una variable PYTHONPATH en general es el enfoque equivocado, porque no funciona muy bien con VENV en Windows. PYTHON en la carga preparará el camino al anteponer PYTHONPATH a la ruta, lo que puede hacer que Venv cuidadosamente preparado obtenga los paquetes del sitio global.

En lugar de utilizar la ruta PYTHON, incluya un archivo pythonpath.pth en el directorio relevante de paquetes de sitio (aunque tenga en cuenta que las pitones personalizadas las buscan de vez en cuando en diferentes ubicaciones, por ejemplo, parece en el mismo directorio que python.exe para sus archivos .pth) cada entorno virtual. Esto actuará como una PYTHONPATH solo será específico para la instalación de python, por lo que puede tener uno diferente para cada instalación / entorno python. Pycharm se integra fuertemente con VENV si solo vas a ver el python de VENV como tu instalación de Python.

Ver, por ejemplo, esta pregunta SO para más detalles sobre .pth archivos ....



Las instrucciones para editar su PYTHONPATH o solucionar problemas de resolución de importación para la inspección del código son las siguientes:

  1. Abrir Preferencias (En una Mac, el atajo de teclado es ⌘, ).
  1. Busque la Project Structure en la barra lateral a la izquierda en Project: Your Project Name

  2. Agregar o eliminar módulos en la barra lateral derecha

EDITAR : He actualizado esta captura de pantalla para PyCharm 4.5


Para PyCharm 5 (o 2016.1), puede:

  1. seleccione Preferencias> Intérprete del proyecto
  2. a la derecha del selector de intérpretes, hay un botón "...", haga clic en él
  3. selecciona "más ..."
  4. abrir una nueva ventana de "Intérpretes de proyecto"
  5. seleccione el botón más adecuado (llamado "mostrar rutas para el intérprete seleccionado")
  6. mostrar una ventana de "Rutas de interpretación"
  7. haga clic en el botón "+"> seleccione el directorio PYTHONPATH que desee (la carpeta que contiene los módulos de python) y haga clic en Aceptar
  8. ¡Hecho! ¡Disfrútala!


Para mí, la solución fue ir a

Run > Edit Configuration > Defaults > Python

luego maneja el

  • "Agregar raíces de contenido a PYTHONPATH" y
  • "Agregar raíz de origen a PYTHONPATH"

casillas de verificación, así como la configuración del campo "Directorio de trabajo".

Si ha configurado sus propias Configuraciones de ejecución / depuración, es posible que desee ir a

Run > Edit Configuration > Python > [Whatever you called your config]

y edítalo allí.

Mi problema era que quería tener todo mi repositorio incluido en mi proyecto PyCharm 2016.2, pero solo una subcarpeta era la raíz real del código fuente de python. Lo agregué como "Source Root" haciendo clic derecho en la carpeta y luego

Mark directory as > Source Root

A continuación, desmarque "Agregar raíces de contenido a PYTHONPATH" y verifique "Agregar raíz de origen a PYTHONPATH" en el menú de configuración Ejecutar / Depurar. Luego revisé la ruta de la carpeta haciendo:

import sys logger.info(sys.path)

Esto superó:

[ ''/usr/local/my_project_root/my_sources_root'', ''/usr/local/my_project_root/my_sources_root'', ''/usr/lib/python3.4'', ''/usr/lib/python3.4/plat-x86_64-linux-gnu'', ''/usr/lib/python3.4/lib-dynload'', ''/usr/local/lib/python3.4/dist-packages'', ''/usr/lib/python3/dist-packages'' ]

Sin embargo, sin la corrección, dijo:

[ ''/usr/local/my_project_root/my_sources_root'', ''/usr/local/my_project_root'', <-- NOT WANTED ''/usr/lib/python3.4'', ''/usr/lib/python3.4/plat-x86_64-linux-gnu'', ''/usr/lib/python3.4/lib-dynload'', ''/usr/local/lib/python3.4/dist-packages'', ''/usr/lib/python3/dist-packages'' ]

Lo que significaba que tenía incluida la carpeta raíz del proyecto. Esto arruinó el camino para mí.