web-dev-qa-db-fra.com

PyCharm ne reconnaît pas correctement les exigences - Python, Django

Les exigences apparaissent souvent dans requirements.txt comme ceci:

Django-registration

Mais dans INSTALLED_APPS, il apparaît comme registration. Alors, quand vous importez comme:

from registration.signals import user_registered

Ceci est valable, mais PyCharm affiche une ligne ondulée rouge sous le mot registration in from registration... qui indique que "Le package 'registration' ne figure pas dans les exigences du projet".

Comment puis-je remédier à cela?

METTRE À JOUR

J'ai réussi à trouver un moyen de faire disparaître l'avertissement, mais ce n'est pas une bonne solution. Si vous ajoutez simplement le nom du package dans le fichier requirements.txt, l'avertissement disparaît mais cette exigence n'est pas valide si vous devez installer avec pip. Par exemple, j'utilise aussi pygooglevoice qui correspond à l'écriture dans requirements.txt, mais une fois importé dans le code, vous écrivez:

from googlevoice import Voice

Cela semble étrange, car j'utilise PyCharm pour de nombreux projets et je le remarque simplement dans un projet récent sur lequel je travaille ...

22
nicorellius

Après avoir revu ce phénomène, j'ai creusé un peu plus. Après avoir défini certains dossiers comme racines source et redémarré PyCharm, ces avertissements de référence ont disparu. Je pense que c'est un bug dans PyCharm.

9
nicorellius

Cela semble être une question ouverte

https://youtrack.jetbrains.com/issue/PY-11963

12
MrJ

JetBrains affirme que ceci est corrigé dans la version 2017.2:

https://youtrack.jetbrains.com/issue/PY-11963#comment=27-2248728

Je peux le confirmer (dans IntelliJ IDEA). En outre, il est utile de vérifier que le fichier de configuration correct est spécifié dans Settings -> Tools -> Python Integrated Tools -> Package requirements file

8
iver56

PyCharm devrait pouvoir comprendre cela, mais ce n’est pas le cas. Pour l'instant, j'ajoute simplement # noinspection PyPackageRequirements à chaque import avec cet avertissement pour le supprimer. Je préférerais que non, mais cela fonctionne pour le moment.

0
Troy Hoffman