Non résolu problème de référence dans PyCharm
J'ai une structure de répertoire
├── simulate.py
├── src
│ ├── networkAlgorithm.py
│ ├── ...
Et je peux accéder au module de réseau avec sys.path.insert()
.
import sys
import os.path
sys.path.insert(0, "./src")
from networkAlgorithm import *
Cependant, pycharm se plaint qu'il ne peut pas accéder au module. Comment puis-je enseigner pycham pour résoudre la référence?
- Ne src dossier a
__init__.py
fichier? - GDI: Non, il n'est pas.
- Ne src dossiers besoin de ce init.py fichier?
- Oui pour python pour identifier les paquets: stackoverflow.com/questions/42094723/...
- J'ai renommé le nom de la classe et de continuer à travailler sur elle. Quand j'ai frappé à terme, il y a cette erreur, totalement oublié de renommer et essayé de regarder pour pycharm suggestions lors de l'importation. Putain, les suggestions sont sensibles à la casse! - Python!!
Vous devez vous connecter pour publier un commentaire.
Ajoutant manuellement comme vous l'avez fait est en effet une façon de le faire, mais il y a une méthode plus simple, et c'est simplement en disant pycharm que vous souhaitez ajouter à la
src
dossier en tant que source de la racine, puis en ajoutant les sources de la racine de votre python path.De cette façon, vous n'avez pas à coder en dur les choses dans votre interprète paramètres:
src
comme une source de contenu de la racine:PYTHONPATH
:De cette façon, vous pouvez ajouter ce que vous voulez tant que source de la racine, et les choses vont travailler tout simplement. Si vous banalisé comme une source de racine toutefois, vous sera obtenez un message d'erreur:
src
, nous avonsviews
dossier à l'intérieur de laquelle j'aimyview.py
, je reçois encore non résolus de référence d'erreur lorsque vous essayezfrom src.views.myview import <my_function>
...projectName
avec lemanage.py
à l'intérieur (pas celle avec virtual env etc.)IntelliJ IDEA 2016+
cette option a été déplacé; voir @AeroHil's réponse__init__.py
fichier danssrc
dossiersrc
dossier en tant que source de la racinePYTHONPATH
(voir ci-dessus)Si quelqu'un est toujours à la recherche de ce, accepté de répondre fonctionne encore pour PyCharm 2016.3 quand je l'ai essayé. L'INTERFACE utilisateur a peut-être changé, mais les options sont toujours les mêmes.
ie. Clic droit sur votre dossier racine --> 'Marque le Répertoire' --> Source de Racine
Normalement, $PYTHONPATH est utilisé pour enseigner l'interpréteur python pour trouver les modules nécessaires. PyCharm doit ajouter le chemin de Préférence.
Après avoir tester toutes les solutions de contournement, je vous suggère de jeter un oeil à
Settings -> Project -> project dependencies
et les réorganiser.pygame
là et pas plus de suspens problème de référence!Généralement, c'est un paquet manquant problème, il suffit de placer le curseur à l'absence de solution de référence et appuyez sur
Alt+Enter
pour afficher les options, puis vous devez savoir comment le résoudre.Après à la suite de la accepté de répondre, de faire ce qui suit résolu pour moi:
File
→Settings
→Project <your directory/project>
→Project Dependencies
Choisi le répertoire/projet où votre fichier qui est en suspens importations réside et cochez la case pour dire Pycharm que ce projet repose sur un autre projet.
Mon dossier hierarcy est légèrement différent de celui indiqué dans la question. Le mien est comme ça
Dire Pycharm que src dépend
MyDirectory
résolu le problème pour moi!Installer via PyCharm (fonctionne avec Community Edition). Ouvrir
Settings > Project > Project Interpreter
puis cliquez sur le vert icône + dans la capture d'écran ci-dessous. Dans le 2ème dialogue qui s'ouvre, entrez le nom du package et cliquez sur "Install Package" bouton.Beaucoup de une fois ce qui se passe est que le plugin n'est pas installé. par exemple,
Si vous êtes l'élaboration d'un projet django et vous n'avez pas de django plugin installé dans pyCharm, il dit erreur "en suspens référence".
Consulter:
https://www.jetbrains.com/pycharm/help/resolving-references.html
Veuillez vérifier si vous utilisez le bon interprète ce que vous êtes censés. J'ai été faire d'erreur "non résolus de référence 'django' " afin de résoudre ce que j'ai changé de Projet Interprète (Modifié Python 3 de Python 2.7) à partir de paramètres du projet:
Sélectionnez le Projet, allez dans Fichier -> Paramètres -> Projet: -> Projet de l'Interprète -> Sourcils et Sélectionnez la bonne version ou d'un Interprète (e.g /usr/bin/python2.7).
Dans mon cas, le problème a été j'ai été en utilisant
Virtual environment
qui n'ont pas accès aux marchés de site-packages. Ainsi, l'interprète n'était pas au courant de la nouvellement installé les packages.Pour résoudre le problème, il suffit d'éditer ou de recréer votre virtuel interprète et cochez la
Inherit global site-packages
option.Pycharm utilise venv. Dans le venv de la console, vous devez installer les paquets explicitement ou aller dans
settings -> project interpreter -> add interpreter -> inherit global site-packages
.