4 votes

Comment se débarrasser de l'icône du lanceur Python à chaque fois qu'un script s'exécute ?

En utilisant Sublime Text 2 ou Atom (peut-être d'autres éditeurs aussi), lorsque j'exécute un simple script de traçage en Python, l'icône du lanceur Python (la fusée) apparaît à chaque fois que j'exécute le code. Les icônes s'accumulent dans le Dock et je dois les fermer individuellement. Existe-t-il une configuration permettant d'éviter ce comportement ?

Avec Sublime Text, par exemple, Command + B est le raccourci par défaut que j'utilise pour exécuter un script. Je n'ai pas trouvé de réponse à cette question dans la documentation d'Atom ou de Sublime Text (ni dans Stack Exchange).

Le script que j'utilise est un ajustement de base à certaines données :

import csv
import matplotlib.pyplot as plt
from scipy.interpolate import *

with open('data.csv', 'rU') as mycsv:
    data = csv.reader(mycsv)
    x = []
    y = []
    for row in data:
        x.append(float(row[0]))
        y.append(float(row[1]))

p = polyfit(x, y, 2)
xp = linspace(-5, 1, 1000)

plt.scatter(x, y)
plt.plot(xp,polyval(p,xp),'r-', label='p1')
plt.show()

1voto

benwiggy Points 21125

Je ne suis pas familier avec pyplot, mais à partir de la documentation il semble que le show() La méthode "s'accroche ("blocs") le script jusqu'à ce qu'il soit fermé par une interaction de l'utilisateur.

En mode non interactif, le displa figures aient été fermées ;
Un seul mot-clé expérimental block, peut être défini à True ou False pour remplacer le comportement de blocage décrit ci-dessus.

D'autres méthodes comme ginput() y waitforbuttonpress() décrire le processus de blocage.

Vous pouvez tester ceci en commentant la dernière ligne et voir si les icônes persistent.

1voto

yoliho Points 340

Dans votre configuration, Sublime Text exécute le script de Python en exécutant python script.py comme s'il s'agissait d'une ligne de commande. Cela permet de lancer un nouvel interpréteur Python à chaque exécution. Ceci est documenté (et est l'exemple réel utilisé) dans la partie Systèmes de construction Manuel Sublime Text

Normalement, cela ne pose pas de problème, mais dans votre cas, vous exécutez un script qui restera ouvert jusqu'à ce qu'il soit fermé manuellement. Tous ces processus sont indépendants et n'ont aucune idée des autres, ce qui fait que vous en obtenez toujours plus.

Pour n'avoir qu'un seul processus Python et donc une seule icône sur le bureau, vous avez besoin d'une configuration différente. En général, il s'agit d'utiliser un REPL (read-eval-print-loop) qui transmet toutes les commandes Python à un seul processus. Je ne suis pas un utilisateur de sublime text et je ne sais donc pas si une REPL peut afficher des graphiques.

Dans votre cas, où il y a beaucoup de graphiques, j'envisagerais les carnets de notes Juypter. Dans Juypter, Python est lancé en tant que processus externe au kernal et votre éditeur lui envoie des commandes Python, ce qui fait qu'il n'y a qu'un seul processus Python qui connaît tous les graphiques. Une recherche rapide sur Google suggère qu'il existe un paquet Hermes pour Sublime Text.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X