Cuestión de referencia no resuelta en PyCharm


Tengo una estructura de directorios

├── simulate.py
├── src
│   ├── networkAlgorithm.py
│   ├── ...

Y puedo acceder al módulo de red con sys.path.insert().

import sys
import os.path
sys.path.insert(0, "./src")
from networkAlgorithm import *

Sin embargo, pycharm se queja de que no puede acceder al módulo. ¿Cómo puedo enseñar a pycham a resolver la referencia?

introduzca la descripción de la imagen aquí

Author: prosseek, 2014-01-20

11 answers

Agregarlo manualmente como lo ha hecho es de hecho una forma de hacer esto, pero hay un método más simple, y es simplemente decirle a pycharm que desea agregar la carpeta src como raíz de origen, y luego agregar la raíz de origen a su ruta de Python.

De esta manera, no tiene que codificar las cosas en la configuración de su intérprete:

  • Añadir src como raíz de contenido de origen:

                            introduzca la descripción de la imagen aquí

  • Entonces asegúrese de añadir fuentes a su PYTHONPATH:

introduzca la descripción de la imagen aquí

  • Ahora las importaciones se resolverán:

                      introduzca la descripción de la imagen aquí

De esta manera, puede agregar lo que desee como raíz de origen, y las cosas simplemente funcionarán. Sin embargo, si lo desmarcó como raíz de origen, obtendrá un error:

                                  introduzca la descripción de la imagen aquí

 554
Author: Games Brainiac,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-20 18:59:32
  1. compruebe el archivo __init__.py en la carpeta src
  2. agregue la carpeta src como raíz de origen
  3. Luego asegúrese de agregar add sources a su PYTHONPATH (ver arriba)
  4. en el menú PyCharm seleccione: Archivo Inval> Invalidar cachés / Reiniciar
 24
Author: Ukr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-10 23:23:04
 14
Author: prosseek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-20 17:18:25

Después de probar todas las soluciones, te sugiero que eches un vistazo a Settings -> Project -> project dependencies y las reorganices.

prefrence pycharm

 12
Author: mehdi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-12 13:08:39

Si alguien todavía está mirando esto, la respuesta aceptada todavía funciona para PyCharm 2016.3 cuando lo probé. La interfaz de usuario puede haber cambiado, pero las opciones siguen siendo las mismas.

Ie. Haga clic derecho en su carpeta raíz {>'Marcar directorio como' Root> Raíz de origen

 7
Author: AeroHil,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-01 16:51:58

Generalmente, este es un problema de paquete faltante, simplemente coloque el recuadro en la referencia no resuelta y presione Alt+Enter para revelar las opciones, entonces debería saber cómo resolverlo.

 4
Author: Ch_y,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-15 09:31:17

Instalar a través de PyCharm (funciona con Community Edition). Abra Settings > Project > Project Interpreter y luego haga clic en el icono verde + en la captura de pantalla de abajo. En el segundo diálogo que se abre, ingrese el nombre del paquete y haga clic en el botón' Instalar paquete'.

introduzca la descripción de la imagen aquí

 2
Author: danday74,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-17 14:38:49

Muchas veces lo que sucede es que el plugin no está instalado. por ejemplo,

Si está desarrollando un proyecto django y no tiene el plugin django instalado en PyCharm, dice error 'referencia no resuelta'. Referir: https://www.jetbrains.com/pycharm/help/resolving-references.html

 1
Author: Ranjeet,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-11 10:12:11

Por favor, compruebe si está utilizando el intérprete correcto que se supone que debe. Estaba recibiendo el error "referencia no resuelta 'django '" para resolver esto cambié el Intérprete del proyecto (Cambié Python 3 a Python 2.7) de la configuración del proyecto: Seleccione Project, vaya a File - > Settings -> Project: - > Project Interpreter - > Brows y Seleccione correct version or Interpreter (e.g /usr/bin/python2.7).

 0
Author: kishs1991,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-06-26 08:28:06

Después de seguir la respuesta aceptada, haciendo lo siguiente lo resolví para mí:

FileSettingsProject <your directory/project>Project Dependencies

Elija el directorio/proyecto donde reside su archivo que tiene importaciones sin resolver y marque la casilla para decirle a Pycharm que ese proyecto depende de su otro proyecto.

Mi carpeta hierarcy es ligeramente diferente de la de la pregunta. El mío es así

├── MyDirectory  
│     └── simulate.py  
├── src  
│     ├── networkAlgorithm.py  
│     ├── ...

Diciéndole a Pycharm que src depende de MyDirectory resolvió el problema para mí!

 0
Author: Benjamin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-16 14:34:45

Pycharm usa venv, en el venv u debe instalar los paquetes explícitamente o goto settings ->project interpreter ->add interpreter ->inherit global site-packages

 -1
Author: yunus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-04 10:09:34