web-dev-qa-db-fra.com

Problème de référence non résolu dans PyCharm

J'ai une structure de répertoire

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

Et je peux accéder au module réseau avec sys.path.insert().

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

Cependant, pycharm se plaint de ne pouvoir accéder au module. Comment puis-je apprendre à pycham à résoudre la référence?

enter image description here

314
prosseek

En l’ajoutant manuellement comme vous l’avez fait is en fait, c’est une façon de le faire, mais il existe une méthode plus simple: il suffit de dire à pycharm que vous souhaitez ajouter le dossier src en tant que source racine, puis en ajoutant la racine des sources à votre chemin python.

De cette façon, vous n'avez pas à coder en dur dans les paramètres de votre interprète:

  • Ajoutez src en tant que racine de contenu source:

 enter image description here

  • Assurez-vous ensuite d’ajouter des sources à votre PYTHONPATH:

enter image description here

  • Maintenant, les importations seront résolues:

 enter image description here

De cette façon, vous pouvez ajouter ce que vous voulez en tant que racine source et tout fonctionnera simplement. Si vous l’annulez en tant que racine source, vous obtenez sera une erreur:

 enter image description here

707
Games Brainiac
  1. vérifier le fichier __init__.py dans le dossier src
  2. ajoutez le dossier src en tant que racine source
  3. Assurez-vous ensuite d’ajouter des sources à votre PYTHONPATH (voir ci-dessus).
  4. dans le menu PyCharm, sélectionnez: Fichier -> Invalider les caches/redémarrer.
39
Ukr

Si quelqu'un regarde encore cela, la réponse acceptée fonctionne toujours pour PyCharm 2016.3 lorsque je l'ai essayée. L'interface utilisateur a peut-être changé, mais les options sont toujours les mêmes.

c'est à dire. Faites un clic droit sur votre dossier racine -> 'Mark Directory As' -> Racine source

16
AeroHil
15
prosseek

Après avoir testé toutes les solutions de contournement, je vous suggère de jeter un œil à Settings -> Project -> project dependencies et de les réorganiser.

pycharm prefrence

14
mehdi

En général, il s’agit d’un problème de paquet manquant. Il suffit de placer le curseur à la référence non résolue et d’appuyer sur Alt+Enter pour afficher les options, vous devez donc savoir comment le résoudre.

5
Ch_y

Après avoir suivi la réponse acceptée, voici ce qui a été résolu pour moi:

FileSettingsProject <your directory/project>Project Dependencies

Choisissez le répertoire/projet dans lequel se trouve votre fichier contenant les importations non résolues et cochez la case pour indiquer à Pycharm que ce projet dépend de votre autre projet.

La hiérarchie de mes dossiers est légèrement différente de celle de la question. Le mien est comme ça

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

Dire à Pycharm que src dépend de MyDirectory a résolu le problème pour moi!

3
Benjamin

Installez via PyCharm (fonctionne avec Community Edition). Ouvrez Settings > Project > Project Interpreter puis cliquez sur l'icône + verte dans la capture d'écran ci-dessous. Dans la deuxième boîte de dialogue qui s'ouvre, entrez le nom du paquet et cliquez sur le bouton 'Installer le paquet'.

enter image description here

2
danday74

Dans mon cas, le problème était que j'utilisais Virtual environment qui n'avait pas accès aux packages de site globaux. Ainsi, l'interprète n'était pas au courant des nouveaux packages installés.

Pour résoudre le problème, il suffit de modifier ou de recréer votre interprète virtuel et de cocher l'option Inherit global site-packages.

enter image description here

1
Dan

Veuillez vérifier si vous utilisez le bon interprète que vous êtes censé utiliser. J'obtenais l'erreur "référence non résolue 'Django" "pour résoudre ceci. J'ai changé l'interpréteur de projet (Modifié Python 3 en Python 2.7) depuis les paramètres du projet: Sélectionnez Projet, allez dans Fichier -> Paramètres -> Projet: -> Interprète de projet -> Naviguer et sélectionner la version ou interprète appropriée (par exemple, /usr/bin/python2.7).

1
kishs1991

Bien souvent, le plugin n'est pas installé. par exemple.

Si vous développez un projet Django et que le plug-in Django n'est pas installé dans pyCharm, le message d'erreur 'Référence non résolue' s'affiche. Voir: https://www.jetbrains.com/pycharm/help/resolving-references.html

1
Ranjeet

Pycharm utilise venv. Dans la console de venv, vous devez installer les packages explicitement ou aller dans settings -> project interpreter -> add interpreter -> inherit global site-packages.

0
yunus