web-dev-qa-db-fra.com

Comment obliger IntelliJ à reconnaître les modules Python courants?

J'utilise IntelliJ 10 IDEA Ultimate Edition. 

J'ai créé un nouveau fichier Test.py et IntelliJ a correctement basculé en mode d'analyse Python. (Je peux confirmer cela en tapant "d", il apparaîtra "def" comme suggestion, et en tapant correctement on me donne "def:")

Cependant, quand j'essaye ce code ...

import os

cwd = os.getcw <Ctrl-space>

Deux choses se passent ....

  1. J'obtiens un soulignement insuffisant sous l'OS et le survol me donne le message "Référence non résolue 'os'"
  2. Je ne reçois aucune suggestion en appuyant sur Ctrl-espace ci-dessus, lorsque je m'attends à voir "getcwd".

Je suppose que cela doit être dû au fait que je n'ai pas correctement configuré IntelliJ pour pouvoir gérer les modules python, mais je n'ai aucune idée de ce qui me manque.

Des utilisateurs d'IntelliJ/Python capables de m'aider?

176
Toddarooski

Il suffit de créer et d'ajouter Python SDK

File -> Project Structure -> Project -> Project SDK -> new

et sélectionnez le chemin d'installation de votre interpréteur Python (par exemple, C:\Python26 sous Windows et /usr/bin/python2.7 sous Linux) comme chemin de base.

Discussion connexe: http://devnet.jetbrains.net/thread/286883

196
db42

Avez-vous mis en place une facette interpréteur python?

Ouvrir la structure du projet CTRL+ALT+SHIFT+S

Project settings -> Facets -> expand Python click on child -> Python Interpreter

Ensuite:

Project settings -> Modules -> Expand module -> Python -> Dependencies -> select Python module SDK

124
linuts

Si votre SDK Python est correctement configuré et que vous rencontrez toujours le problème que les éléments intégrés ne sont pas reconnus, essayez ceci:

File -> Invalidate Caches/Restart
60
Alp

Voici ce que je devais faire. (Et j’ai probablement oublié un aspect important de mon problème, à savoir qu’il ne s’agissait pas à l’origine d’un projet Python, mais d’un projet Java contenant des fichiers Python.)

Paramètres du projet -> Modules -> Bouton Plus (ajouter un module) -> Python

Cliquez ensuite sur le bouton "..." à côté de l'interpréteur Python.

Dans la boîte de dialogue "Configurer le SDK" qui apparaît, cliquez sur le bouton "+". Sélectionnez "Python SDK", puis sélectionnez le raccourci par défaut "Python" qui apparaît dans la boîte de dialogue du Finder.

Attendez environ 5 minutes. Lisez quelques conseils de productivité. :)

Cliquez sur OK

Attendez que le système reconstruise certains index.

Hourra! Le code est de retour pour mes modules!

18
Toddarooski

Une autre solution possible (résolu mon problème)

Vous avez peut-être configuré l'environnement correctement, mais pour une raison quelconque, il s'est cassé en cours de route. Dans ce cas, allez à:

file > project settings > modules

Déployez la liste des kits de développement logiciel (SDK) et recherchez une ligne rouge avec [invalid] à la fin de ... .. Si vous en trouvez un, vous devez recréer un sdk python.

Il est probable que votre SDK qui fonctionnait auparavant est également présent, mais pas en rouge. Supprime-le.

Maintenant, vous pouvez cliquer sur le bouton new et ajouter votre virtualenv python préféré. Et ça devrait marcher maintenant.

4
Romain Vincent

Voici comment j'ai résolu mon problème (j'ai importé le projet et il ne l'affiche que là-bas, les fichiers nouvellement créés ne montraient pas ces erreurs):

1) Commande + alt + R (Contrôle en cas de fenêtres

2) La fenêtre de débogage apparaît, sélectionnez votre fichier et appuyez sur la flèche droite (->), choisissez Modifier, puis appuyez sur Entrée (la fenêtre Modifier les paramètres de configuration apparaît)

3) Sous configuration, vous pouvez voir l’erreur en bas (veuillez sélectionner un module avec un sdk python valide). Dans l’interpréteur Python, cochez Utiliser l’interpréteur spécifié, puis sélectionnez la version Python dans le menu déroulant.

(Si python n’est pas là, téléchargez le plug-in python pour intelliJ en utilisant le lien suivant https://www.jetbrains.com/help/idea/2016.3/installing-updating-and-uninstalling-repository-plugins.html

4) Cliquez sur Appliquer puis fermez-le.

Bingo c'est fait. 

1
hulesh chandra

Mon problème était similaire à celui de @Toddarooski, sauf que le module que j'avais sous l'onglet "Dépendances" ne contenait aucun SDK. J'ai cliqué avec le bouton droit de la souris sur 'SDK', sélectionné Modifier dans le menu déroulant et sélectionné mon SDK Python. Cela a fait le tour.

0
user108569

Même mon Intellisense dans Pycharm ne fonctionnait pas pour des modules tels que time Le problème dans mon système n’était pas sélectionné. Un interpréteur a été sélectionné. Allez dans Fichier -> Paramètres ... ( Ctrl + Alt + S) Ouvrir Interprète de projet

Interprète de projet Dans mon cas, a été sélectionné. J'ai sélectionné l'interprète python disponible. Si non disponible, vous pouvez ajouter un nouvel interprète.

0
PIYUSH

Je l’ai obtenu après avoir décoché les options suivantes dans les configurations Exécuter/Déboguer pour main.py

Add content roots to PYTHONPATH

Add source roots to PYTHONPATH

C'est après que j'ai invalidé le cache et redémarré. 

0
user3079474

Quelques étapes qui m'ont aidé (certaines d'entre elles sont mentionnées ci-dessus):

Ouvrir la structure du projet par:

commande +; (utilisateurs de mac) OU clic droit sur le projet -> Ouvrir les paramètres du module

  1. Facettes -> + -> Python -> <votre-projet> -> OK
  2. Modules -> Python -> <sélectionnez l'interpréteur python>
  3. Project -> Project SDK -> <sélectionnez le SDK approprié>
  4. SDK -> <assurez-vous que c'est le bon>

Cliquez sur OK.

Ouvrez les configurations d'exécution/de débogage par: Exécutez -> Modifier les configurations

  1. Interprète Python -> <assurez-vous que c'est le bon> 

Cliquez sur OK.

0
Eli

Utiliser un Fichier de besoins (voir le lien vers la documentation JetBrains)

Dans mon cas, j'avais besoin de arrow. Alors j'ai ajouté 

arrow==0.7.0 

à mes projets requirements.txt

Puis Intellij m'a demandé d'ajouter la bibliothèque la première fois que j'ai écrit import arrow dans un script Python.

0
Kirby