J'utilise PyCharm pour travailler sur un projet. Le projet est ouvert et configuré avec un interpréteur et peut être exécuté avec succès. Les chemins de l'interpréteur distant sont correctement mappés. Cela semble être la configuration correcte, mais PyCharm met en évidence mon code valide avec des erreurs "référence non résolue", même pour les fonctions Python intégrées. Pourquoi ne semble-t-il pas être détecté, même si le code est exécuté? Existe-t-il un moyen de faire en sorte que PyCharm les reconnaisse correctement?
Cette instance spécifique du problème concerne un interprète distant, mais le problème apparaît également sur les interprètes locaux.
Fichier | Invalider les caches ... et redémarrer PyCharm aide.
La réponse de Dmitry n'a pas fonctionné pour moi.
Le mien a fonctionné en allant dans Project Interpreters, en sélectionnant l'onglet "Paths", puis en appuyant sur le bouton d'actualisation de ce sous-menu. Il s'est auto-rempli avec quelque chose appelé "python-squelettes".
edit : capture d'écran en utilisant PyCharm 3.4.1 (c'est assez bien caché)
Il existe de nombreuses solutions, certaines plus pratiques que d'autres, et elles ne fonctionnent pas toujours.
Voici tout ce que vous pouvez essayer, allant de 'rapide' à 'agaçant':
File
-> Invalidate Caches / Restart
et redémarrez PyCharm .Run
-> Edit Configurations
-> Configuration
-> Python Interpreter
.File
-> Settings
Project: [name]
-> Project Interpreter
-> 'Interprète de projet': icône d'engrenage -> More...
File
-> Settings
Project: [name]
-> Project Interpreter
-> 'Interprète de projet': icône d'engrenage -> More...
.idea
de votre projet~/.PyCharm50
sur Mac%homepath%/.PyCharm50
sous WindowsJe me trouve en train de supprimer et d'ajouter à nouveau l'interpréteur distant pour résoudre ce problème lorsque l'invalidation des caches ou l'actualisation des chemins ne fonctionne pas.
J'utilise vagrant et chaque fois que j'ajoute un nouveau VM à ma configuration multi-vm, le port transféré change et cela semble confondre PyCharm lorsqu'il tente d'utiliser le mauvais port pour SSH. Changer le port ne semble pas aider les références cassées.
Dans mon cas, c’était la structure des répertoires . Mon projet ressemble à ceci:
+---dir_A
+---dir_B
+app
|
\-run.py
Alors faites un clic droit sur dir_b> "marquer le répertoire comme"> "racine du projet"
Testé avec PyCharm 4.0.6 (OSX 10.10.3) En suivant ces étapes:
Problème résolu!
Si aucune autre solution ne fonctionne pour vous, essayez de (sauvegarder) et de supprimer votre dossier ~/.PyCharm40, puis de rouvrir PyCharm. Cela va tuer toutes vos préférences aussi.
Sur Mac, vous voulez supprimer ~/Library/Caches/Pycharm40 et ~/Library/Preferences/PyCharm40.
Et sous Windows: C:\Utilisateurs\$ USER.PyCharm40.
Désolé de poser cette question, mais j’ai une mise à jour importante à faire.
Vous voudrez peut-être également revenir à votre interpréteur de projet sur Python 2.7.6 si vous utilisez une version autre que celle utilisée. Cela a fonctionné pour moi sur mon installation Ubuntu de PyCharm 4.04 professional après qu'aucune autre recommandation n'ait résolu mon problème.
Vous pouvez essayer de fermer Pycharm, en supprimant le dossier .idea
de votre projet, puis en redémarrant Pycharm et en recréant le projet. Cela a fonctionné pour moi alors que l'invalidation du cache n'a pas fonctionné.
J'ai finalement réussi à faire fonctionner ce projet après qu'aucune des solutions proposées ne fonctionnait pour moi. Je jouais avec un projet de cadre de repos Django et utilisais une machine virtuelle que j'avais configurée avec. Je pouvais obtenir que Pycharm soit corrigé en marquant le dossier racine comme étant la source, mais le serveur de Django lançait des exceptions de résolution. Ainsi, l’un fonctionnerait quand l’autre ne le ferait pas et vice versa.
En fin de compte, je devais simplement marquer le sous-dossier en tant que racine des sources dans pycharm. Donc, ma structure était comme ça
-playground
-env
-playground
Ce second dossier est celui que je devais marquer comme racine des sources pour que tout fonctionne comme prévu. Cela n’a posé aucun problème pour mon scénario, c’est donc une solution viable.
Je pensais que je partagerais au cas où quelqu'un d'autre pourrait l'utiliser.
Aucune des solutions ci-dessus n'a fonctionné pour moi!
Si vous utilisez un environnement virtuel pour votre projet, veillez à appliquer le fichier python.exe
qui se trouve dans votre répertoire d’environnement virtuel en tant qu’interprète pour le projet (Alt + Ctrl + Shift + S)
Cela a résolu le problème pour moi.
J'ai fermé tous les autres projets et géré mon projet requis de manière isolée à Pycharm. J'ai créé une virtualenv distincte de pycharm et y a ajouté tous les modules requis à l'aide de pip. J'ai ajouté cet environnement virtuel dans l'interpréteur du projet. Cela a résolu mon problème.
Dans mon cas, l'erreur d'inspection apparaît en raison d'un cas très spécifique de code python. Une fonction min qui contient deux fonctions numpy et deux accès à une liste rend mon inspection de code donner ce genre d’erreurs.
Si vous supprimez la ligne "d = 0" dans l'exemple suivant, l'erreur de référence non résolue est attendue, mais la lecture ne permet pas de supprimer l'erreur pour l'inspecteur de code. Je peux toujours exécuter le code sans problèmes par la suite.
import numpy as np
def strange(S, T, U, V):
d = 0
print min(np.abs(S[d]), np.abs(T[d]), U[d], V[d])
Effacer les caches et recharger la liste des chemins ne fonctionne pas. La modification du code uniquement avec l'un des exemples de correctifs suivants fonctionne:
Aucune des réponses n'a résolu mon problème.
Pour moi, c’est de changer d’environnement et de revenir au même environnement. File->Settings->Project interpreter
J'utilise des environnements conda.
Mon Dieu, quel cauchemar, ma fusion de différentes réponses de StackOVerflow:
Si vous utilisez vagrant
, l'erreur peut être provoquée par un interprète python incorrect . Dans notre vagrant
, nous utilisons pyenv
et j'ai donc dû changer le chemin Python Interpreter path
de /usr/bin/python
en /home/vagrant/.pyenv/versions/vagrant/bin/python
.
Si vous souhaitez ignorer uniquement certaines erreurs de "référence non résolue", vous pouvez également le dire explicitement à PyCharm en le plaçant devant votre classe/méthode/fonction:
# noinspection PyUnresolvedReferences