Je suis nouveau chez PyCharm. J'utilise IDLE depuis longtemps.
Il est très pratique d’utiliser des objets Python après l’exécution du script dans IDLE. Est-il possible d'utiliser des objets de script après son exécution avec un shell python interactif utilisant PyCharm?
Par exemple, nous avons un projet 'test' avec un fichier 'test.py':
a = '123'
print a
après exécution, nous pouvons obtenir le résultat:
123
Process finished with exit code 0
Comment utiliser la chaîne 'a' avec un shell interactif?
Cela activera un shell python (remarquez le >>>
vert sur la capture d'écran) où vous pouvez accéder à toutes les variables de l'étendue actuelle et effectuer tout ce que vous faites habituellement dans le shell Python.
Dans les versions récentes de pycharm, vous obtenez un interpréteur complet ipython à la place du shell en python brut (si ipython est installé).
Comme alternative plus confortable, si vous n’avez besoin que d’inspecter certaines variables, membres d’accès ou méthodes d’appel sur un objet dans la portée, une fois le point d’arrêt atteint, sélectionnez une expression dans la portée actuelle, cliquez avec le bouton droit de la souris -> Évaluer Expression (ou utilisez la touche de raccourci affichée dans le menu sous Run → Evaluate Expression...), éditez si nécessaire - vous pouvez taper toute expression de python, avec saisie semi-automatique disponible - puis appuyer sur - Entrée (ou cliquez sur Evaluer ) pour inspecter le résultat. .
Les expressions multiples et multilignes sont prises en charge: pour obtenir une version multiligne de la boîte de dialogue Inspecter, cliquez sur Mode fragment de code ou sélectionnez plusieurs lignes de code dans l'éditeur, puis évaluez l'expression. Vous pouvez affecter des valeurs à des variables existantes (vous ne pouvez pas en définir de nouvelles) et exécuter des morceaux de code entiers.
Pour voir la valeur d'une variable après avoir atteint un point d'arrêt en mode débogage, placez le pointeur de la souris sur la variable (1 à 2 secondes) pour afficher la valeur dans une info-bulle.
L'indice contiendra un ➕ icon - cliquez dessus pour ouvrir l'inspecteur dans une fenêtre contextuelle.
Pour les variables concernées, l'inspecteur est affiché dans le panneau inférieur sous Debug> Debugger.
Pour les pandas
trames de données, un lien est affiché en tant que DataFrame dans le panneau de l'inspecteur de variable ou dans la fenêtre contextuelle survolée - cliquez sur le lien pour afficher le structure de données sous forme de tableau dans le panneau Affichage des données .
J'ai trouvé les réponses précédentes de Piga-fetta, Jeux Brainiac et kobejohn utiles, mais non satisfaisantes . Je propose donc ici une troisième option:
Chargement du code sélectionné dans la console (ma suggestion)
Utilisation Shift + Alt + E pour charger le code sélectionné ou la ligne dans laquelle le curseur est placé dans la console et l'exécuter immédiatement. Cela a aussi des inconvénients:
Mais en retour, nous obtenons une fonctionnalité meilleure que IDLE (à mon avis): pouvoir exécuter votre code une sélection à la fois.
Lisez à ce sujet ici .
Utilisation de points d'arrêt et évaluation de l'expression (Alt-F8) (suggéré par Piga-fetta)
Ceci est très utile dans les grandes applications où nous devons déboguer à certains endroits du code, mais pas si utile pour le codage interactif. Donc, ce n'est pas ce que nous voulons.
Utilisation des outils -> Exécuter la console Python (suggéré par les jeux Brainiac et kobejohn)
C’est ce que nous voulons, mais c’est un peu lourd, surtout si le module que nous voulons exécuter ne se trouve pas dans le répertoire racine du projet.
Vous pouvez simplement utiliser la console Python dans PyCharm 2 et PyCharm 3. Et vous pouvez simplement importer, car la racine du projet est déjà ajoutée à votre PYTHONPATH
:
Alors laissez-moi démontrer à travers quelques captures d'écran:
console.py
dans le répertoire racineconsole.py
Et là, vous avez importé votre variable avec succès.
Si vous rencontrez toujours ce problème, accédez au menu Exécuter/Déboguer, choisissez Modifier la configuration, cochez la case "Afficher la ligne de commande" pour pouvoir entrer les paramètres dans la console à l'invite >>> et tester votre fonction.
Pour que cette modification s’applique à tous vos fichiers .py (car cette case à cocher s’applique uniquement au fichier actuel sur lequel vous travaillez), allez à: Modifier la configuration, dans la fenêtre contextuelle, une arborescence de menus à gauche, sélectionnez Valeurs par défaut. , puis Python, puis cochez la case "Afficher la ligne de commande", cela en fera le paramètre par défaut chaque fois que vous ouvrez un fichier .py (cette fonctionnalité devrait être activée par défaut!)
J'ai trouvé la meilleure réponse dans: Interaction avec le programme après exécution
Citant la réponse ci-dessous:
++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++
Depuis la sortie de python --help:
-i: inspecte de manière interactive après l'exécution du script; force une invite même si stdin ne semble pas être un terminal; aussi PYTHONINSPECT = x
Pour définir l'option d'interprétation dans PyCharm, allez à Exécuter | Modifier la configuration
++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++
Je l'ai essayé et cela fonctionne - utilisez simplement "-i" (sans guillemets) comme "options d'interprétation". Notez que si vous ne modifiez que les valeurs par défaut dans les configurations Exécuter/Déboguer, cela n'aura peut-être pas d'effet immédiat sur les scripts que vous avez déjà exécutés auparavant; vous devrez éditer les configurations de ces scripts un par un.
Non mentionné ci-dessus:
Si vous souhaitez utiliser une variable au cours de l'exécution, par exemple, Lorsque vous définissez un point d'arrêt et expérimentez ensuite l'appel de fonctions sur des objets de l'étendue actuelle, PyCharm présente une fenêtre contextuelle ' Evaluate Expression (Alt-F8) '.
Dans cette fenêtre, vous pouvez appeler des fonctions et voir la sortie. La complétion de code fonctionne également ... Cette fenêtre a également un "mode fragment de code", je cherche seulement à savoir ce que cela signifie - pouvez-vous définir des fonctions temporaires ici?.
(J'utilise PyCharm 3.0.1 Community Edition)
*mettre à jour
D'après votre mise à jour, je pense cette SO question fournit au moins une réponse parfaite .
Laissez-moi l’écrire ici un peu plus étape par étape que la réponse que j’ai liée.
import myscript
(sans .py) (si vous voulez un nom court, utilisez import myscript as m
main()
si vous avez un bloc if __== '__main__'
)a
est disponible dans myscript.a
myscript = reload(myscript)
*original
Dans PyCharm 3.0, vous pouvez effectuer les opérations suivantes:
Est-ce ce que vous cherchez? Sinon, essayez-les et dites-moi en quoi cela diffère de ce que vous voulez.
En plus de la suggestion que j'ai faite sur Réponse de Ramkins , vous pouvez exécuter le fichier directement avec la console en cliquant avec le bouton droit de la souris sur l'intérieur du fichier et en sélectionnant Run File in Console
.