1
votes

Comment exécuter .py-file et arrêter à l'instruction souhaitée pendant le développement

Bonjour ma très chère communauté stackoverflow,

Je souhaite exécuter un fichier .py jusqu'à une certaine position. Certains IDE peuvent prendre en charge la fonctionnalité "exécuter tout ci-dessus", mais il semble que je n'utilise pas correctement PyCharm, car j'ai besoin de la console python à tout moment pour parcourir les variables et les choses.

Alors - y a-t-il un moyen d'arrêter correctement l'exécution du programme? (modifier: sans fermer la console python, de sorte que d'autres commandes puissent être exécutées pour inspecter / utiliser les variables obtenues)

De toute évidence, il existe des solutions de contournement: lancer des exceptions, programmer le fichier dans une boucle while et interrompre - mais ces solutions ne peuvent pas être appropriées, non?

modifier: Quelques réponses suggèrent déjà que cela pourrait être facilement résolu en utilisant les fonctions de débogage - cependant, l'utilisation des fonctions de débogage pourrait ne pas toujours être possible car les fichiers .py pourraient être exécutés à distance [sans interface appropriée pour le débogage], en chargeant une version "standard" , tandis qu'une version plus "avancée / expérimentale" pourrait également exécuter plus de morceaux de code dans ce fichier .py. (Oui, je suis conscient que cela pourrait en fait être considéré comme un développement de merde - car exécuter des fonctions et avoir des paramètres appropriés résoudraient également cela, je suppose.)

Veuillez me renseigner, je n'ai pas trouvé les informations que je recherchais en utilisant google, car tout ce qui était affiché montrait des actions pertinentes pour la boucle.

Meilleures salutations


0 commentaires

5 Réponses :


1
votes

Vous recherchez un débogueur python. Dans PyCharm, vous pouvez simplement cliquer sur la ligne où vous voulez que le programme s'arrête (sur le côté gauche, où se trouvent les numéros de ligne). Ensuite, il devrait y avoir un cercle rouge sur cette ligne (un point d'arrêt), puis déboguer (exécuter) le programme avec l'icône verte "Bug" au lieu de la flèche verte. Le débogueur s'arrête alors à ce point et vous pouvez étudier les variables, les modifier à la volée ou même exécuter certaines instructions.

Pour plus d'informations, essayez le tutoriel de jetbrains .

Modifier après une exigence supplémentaire de débogage à distance:

Vous pouvez également effectuer un débogage à distance avec un débogueur, il existe plusieurs façons de le faire et je ne suis pas sûr de votre cas d'utilisation. Il est possible d'exécuter et de déboguer votre code avec un débogueur distant ou d'intégrer un débogueur à des scripts en cours d'exécution normaux sur le serveur distant. Cela semble correspondre à vos besoins?

Voici le lien officiel de PyCharm: Débogage à distance


3 commentaires

Merci d'avoir répondu! Vous avez raison, je pourrais utiliser un débogueur - mais je cherche un moyen qui serait également utilisable via un terminal distant. - J'ajouterai ceci à la question.


J'ai étendu ma réponse avec la possibilité de débogage à distance. Est-ce ce que vous recherchez?


Hé, merci d'avoir étendu la réponse, j'ai juste eu l'occasion de l'examiner. Non, pas vraiment. Je cherche vraiment plutôt un moyen d'avoir un fichier x.py, qui a une partie au-dessus d'un certain point qui arrête le programme, et aussi en dessous. Le point qui devrait arrêter le programme pourrait être une erreur (aucun code ne sera exécuté après cela), mais je voudrais simplement que la console quitte le fichier. Idéalement, des choses comme exit () fonctionneraient, mais cela pwns la console ...



2
votes

Vous pouvez simplement utiliser le débogueur dans pycharm. Vous pouvez définir des points d'arrêt et l'exécution du code s'arrêtera là où vous voulez qu'elle s'arrête. Une fois qu'il est arrêté, vous pouvez voir les valeurs de toutes les variables, évaluer l'expression ou démarrer une console python qui a accès à toutes les variables et y exécuter des commandes.

Vous ne voudrez peut-être pas lire la brève introduction à toutes les fonctionnalités: https://www.jetbrains.com/help/ pycharm / debugging-your-first-python-application.html


1 commentaires

Merci d'avoir répondu! Vous avez raison, je pourrais utiliser un débogueur - mais je cherche un moyen qui serait également utilisable via un terminal distant. - J'ajouterai ceci à la question.



1
votes

Ou vous pouvez tricher un peu:

a = "test"
b = "ing"

# quick debug
print(a)
print(b)
exit()  # the program will stop here

c = f"{a}{b}"  # this will show only when you remove exit()

Ce n'est pas la meilleure façon de déboguer bien sûr, mais cela peut gagner du temps.


4 commentaires

exit () déclenche ce qui suit dans pycharm: Pour quitter la console PyDev, fermez la console dans l'IDE.


Cependant, c'est une autre approche des solutions de contournement que j'ai essayé de présenter - on pourrait également soulever un type spécifique d'erreur ou une variante auto-écrite de celle-ci, ainsi que boucler l'intérieur de .py


Cette approche est indépendante de l'IDE. Essayez avec sys.exit (0) . Vous devrez importer sys . Sinon, vous générez simplement une exception au lieu de quitter. Il existe de nombreuses façons de déboguer, cela dépend de l'effort que vous souhaitez y consacrer.


briser le .py avec sys.exit (0) provoque l'arrêt de la console py, de sorte qu'aucun argument supplémentaire ne peut être exécuté en utilisant les variables obtenues par ledit fichier .py.



0
votes

La bonne façon de ne pas faire face à de tels problèmes comme celui-ci est d'imbriquer le code dans des fonctions et de les appeler correctement afin de contrôler quelle partie du code doit réellement être exécutée.

Cependant, une solution pour cela pourrait encore être pertinente, en particulier pour les applications en science des données, car de nombreuses solutions sont présentées dans un seul fichier (/ jupyter notebooks) afin de présenter toutes les étapes prises pour obtenir les résultats obtenus.


0 commentaires

0
votes

Vous pouvez exécuter le fichier en mode débogage et définir un point d'arrêt pour arrêter l'exécution et inspecter les variables. Il existe un raccourci dans pycharm ^ D pour exécuter un fichier en mode débogage.


0 commentaires