débogage interactif de shell avec pycharm

je suis nouveau à PyCharm. J'utilise IDLE depuis longtemps.

il est très pratique d'utiliser des objets Python après l'exécution du script en IDLE. Y a-t-il un moyen d'utiliser les objets script après leur exécution avec un shell python interactif en utilisant PyCharm?

par exemple, nous avons un projet' test ' avec un fichier 'test.py

a = '123'
print a

après l'exécution, nous pouvons obtenir le résultat:

123
Process finished with exit code 0

Comment utiliser string ' a ' avec shell interactif?

59
demandé sur Phillip 2013-10-12 05:49:02

8 réponses

shell Python intégré pour la session de débogage en cours

  1. définir un point de rupture à la ligne d'intérêt de votre code (i.e. en cliquant sur le caniveau), et lancer le débogage (clic droit dans l'éditeur puis choisir débogage myfile.py... ).
  2. lorsque le point de rupture est atteint, localisez l'onglet Debug > Console , puis cliquez sur Afficher la ligne de commande icône (voir capture d'écran).

cela activera un shell python (notez le vert >>> sur la capture d'écran) où vous pouvez accéder à toutes les variables du champ d'application courant, et faire tout ce que vous faites habituellement dans le shell Python.

dans les versions récentes de pycharm, vous obtenez l'interpréteur ipython complet au lieu du simple shell python (Si ipython est installé).

Enabling Python shell for the debugged app

Le Évaluer l'expression fenêtre

comme alternative plus confortable, si vous n'avez besoin que d'inspecter certaines variables, d'accéder à des membres ou d'appeler des méthodes sur un objet dans scope, une fois qu'un point de rupture est atteint, sélectionnez une expression dans le champ d'application actuel, cliquez droit- > évaluer L'Expression (ou utilisez la touche de raccourci affichée dans le menu sous Exécuter Évaluer L'Expression... ), éditez au besoin - vous pouvez taper n'importe quelle expression python, avec auto-completion disponible - puis appuyez sur " Enter (ou cliquez sur "151960920 Evaluate ) pour inspecter le résultat.

les expressions multiples et multilignes sont supportées: pour obtenir une version multiligne de la boîte de dialogue inspecter cliquez sur le mode fragment de Code ou sélectionnez Plus d'une ligne de code dans l'éditeur, puis évaluez l'expression. Vous pouvez assigner des valeurs à des variables existantes (les nouvelles ne peuvent pas être définies), et exécuter des morceaux entiers de code. inspecting variables in the current scope

Souris de survoler les variables

pour voir la valeur d'une variable après avoir atteint un point de rupture en mode débogage, passez le pointeur de la souris sur la variable (1-2 secondes) et le la valeur sera affiché dans une info-bulle.

enter image description here

l'indice contiendra une icône - en cliquant sur l'icône, l'inspecteur s'ouvrira dans un popup.

enter image description here

pour les variables dans le champ d'application l'inspecteur est indiqué dans le panneau inférieur sous Debug > Débogueur .

99
répondu ccpizza 2017-11-21 22:22:12

j'ai trouvé aux réponses précédentes de Piga-fetta, jeux Brainiac et kobejohn utile, mais pas satisfaisant . Donc je fournis ici une troisième option:

chargement du code sélectionné dans la console (ma suggestion)

utiliser Shift + Alt + E pour charger le code sélectionné ou la ligne dans laquelle le curseur est placé dans la console et lancer immédiatement. Cela présente également certains inconvénients:

  • , Vous devez sélectionner l'ensemble du fichier si vous avez besoin d'exécuter le fichier en entier.
  • le code continue de tourner même s'il rencontre une erreur.

mais en retour nous obtenons une fonctionnalité qui est meilleure que IDLE (à mon avis): pouvoir exécuter votre sélection de code une fois à la fois.

en savoir plus ici .

utiliser les points de rupture et évaluer L'Expression ( Alt - F8 ) (suggéré par Piga-fetta)

c'est très utile dans les grandes applications où nous avons besoin de déboguer à certains endroits dans le code, mais pas si utile pour le codage interactif. Donc ce n'est pas ce que nous voulons.

Utiliser Des Outils --> Exécuter La Console Python (suggéré par Games Brainiac et kobejohn)

C'est que nous le voulons, mais c'est un peu lourd, surtout si le module que nous voulons n'est pas dans le répertoire racine du projet.

18
répondu elgehelge 2015-07-30 11:32:44

vous pouvez simplement utiliser la Console Python à l'intérieur de PyCharm 2 et PyCharm 3. Et vous pouvez tout simplement importer puisque votre racine de projet est déjà ajouté à votre PYTHONPATH :

alors laissez-moi vous montrer à travers quelques captures d'écran:

1. Création d'un fichier console.py dans le répertoire racine

enter image description here

2. Ouverture de la Console Python à L'intérieur de PyCharm

enter image description here

3. L'importation de la variable console.py fichier

enter image description here

Et là, vous avez importé votre variable avec succès.

9
répondu Games Brainiac 2014-02-12 03:54:43

laisser la ligne de commande ouverte après l'exécution

pour ceux qui ont encore ce problème: allez dans le menu Exécuter/déboguer, choisissez Modifier la Configuration, cochez la case "Afficher la ligne de commande" cela vous permettra d'entrer les paramètres dans la console à l'invite >>> et de tester votre fonction.

Change setting for current file only

configuration Globale

pour que ce changement s'applique à tous vos .les fichiers py (car cette case à cocher Ne s'applique qu'au fichier courant sur lequel vous travaillez) allez à: modifier la configuration, dans le pop up vous verrez un arbre de menu à gauche, sélectionnez Par défaut, puis Python, puis cochez la case 'Show command line', ce qui en fera le paramètre par défaut chaque fois que vous ouvrez un .PY file, (cette fonctionnalité devrait vraiment être activée par défaut!)

Change setting for all Python files

8
répondu Rampkins 2017-03-30 12:16:58

j'ai trouvé la meilleure réponse en: interaction avec le programme après exécution

citant la réponse ci-dessous:

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

de la sortie de python -- aide:

- i: inspect interactively after running script; force un prompt même si stdin ne semble pas être un terminal; aussi PYTHONINSPECT=x

pour définir l'option d'interpréteur dans PyCharm aller à exécuter|modifier la Configuration

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

j'ai essayé et cela fonctionne - il suffit d'utiliser"- i "(sans guillemets) comme"options D'interprétation". Notez que si vous ne modifiez que les valeurs par défaut dans les Configurations Run / Debug, cela pourrait ne pas prendre effet immédiatement pour les scripts que vous avez déjà lancés auparavant; vous devrez éditer les configurations ces scripts un par un.

6
répondu user3308189 2017-05-23 12:10:27

non mentionné ci-dessus:

si vous voulez utiliser une variable pendant l'exécution , par exemple lorsque vous définissez un point de rupture et expérimentez ensuite des fonctions d'appel sur des objets dans la portée actuelle, PyCharm a une fenêtre popup ' Evaluate Expression (Alt-F8) .

dans cette fenêtre, vous pouvez appeler des fonctions et voir la sortie. L'achèvement du Code fonctionne aussi. Cette fenêtre a aussi un "mode de fragment de code", je suis juste rechercher ce que cela signifie - Pouvez-vous définir les fonctions temporaires ici?.

(j'utilise PyCharm 3.0.1 Community Edition)

4
répondu Piga-fetta 2013-11-05 02:19:39

*mise à jour

de votre mise à jour, je pense que cette question "SO 1519110920" fournit au moins une réponse parfaite .

Permettez-moi de l'écrire ici un peu plus, étape par étape, que la réponse que j'ai lié.

  • Outils --> Exécuter Python Console
  • importer votre script import myscript (sans .py) (si vous voulez un nom court, utiliser import myscript as m
  • (vous pourriez avoir besoin d'exécuter main() si vous avez un bloc if __name__ == '__main__' )
  • comme dans votre question, a est disponible en myscript.a
  • si vous voulez, exécutez le script à nouveau avec myscript = reload(myscript)

*original

dans PyCharm 3.0 vous pouvez faire ce qui suit:

  • Outils --> Exécuter Python Console
  • Outils --> Ouvrir un Terminal (à partir de laquelle vous pouvez commencer à python ou de faire quoi que ce soit)

Est-ce que vous cherchez? Si pas, essayez-les et laissez-moi savoir comment cela est différent de ce que vous voulez.

2
répondu KobeJohn 2017-05-23 12:26:09

une autre alternative est d'utiliser simplement la même commande que Spyder utilise pour exécuter "interactivement" un script:

>>> runfile('myscript.py')

ensuite, vous pouvez ouvrir l'Explorateur de variables pour la console interactive et relancer le script en lançant à nouveau la commande ci-dessus. Très similaire au flux de travail Spyder. Toutes les autres méthodes ci-dessus vous laisseront avec une invite de la console interactive mais pas l'option d'ouvrir un explorateur de variables alors si vous cherchez pour ce genre de fonction, essayez ci-dessus.

0
répondu arkore 2016-03-25 12:00:44