web-dev-qa-db-fra.com

Créez un programme Python exécutable à partir de son icône

Je souhaite python programmes s'exécuter dans une fenêtre en cliquant sur une icône.

C'est le premier jour de mon apprentissage et du type de codage et d'Ubuntu. Nous apprécions donc les explications excessives et les détails supplémentaires.

Exemple de code que j'utilise

print("Game Over")
input("\n\nPress the enter key to exit")

Fonctionne correctement dans IDLE, mais lorsque je clique sur l'icône du fichier .py, un éditeur s'ouvre à la place du programme/de la fenêtre.

Étapes que j'ai faites jusqu'à présent

  • cliquez avec le bouton droit sur le fichier .py et définissez les autorisations sur "autoriser l'exécution du fichier en tant que programme"
  • lis autant que je pouvais et cela semble me diriger vers des informations qui sont au-dessus de ma tête.

Exemples

#!/usr/local/bin/python
#!/usr/bin/env python
CHMOD X

Je ne comprends ni ne sais où utiliser.

J'utilise Ubuntu 14.04 et Python 3

Merci d'avance.

2
strangeagent

Bien que votre question puisse être sur le bord pour plus d'une raison (trop large, hors sujet, plus d'un sujet par question, sur le bord d'un certain nombre de quasi-doublons), je répondrai à la (aux) question (s).

La première question: à propos de l'exécution d'un script (texte uniquement) "à partir d'une icône", comme vous le mentionnez:

  • Votre script ne contient que du texte et doit être exécuté dans Idle ou dans une fenêtre de terminal. Cela signifie que si vous voulez l'exécuter en double-cliquant sur une icône, vous devez créer un fichier .desktop, dans lequel est défini pour exécuter le script dans une fenêtre de terminal.
    Ces fichiers .desktop font partie de pratiquement toutes les applications à interface graphique installées sous Ubuntu.

    Un exemple très basique, digne de votre script:

    [Desktop Entry]
    Name=Test
    Exec=/home/jacob/Bureaublad/test.py
    Terminal=true
    Type=Application
    

    Les lignes les plus intéressantes sont:

    Exec=/home/jacob/Bureaublad/test.py
    

    dans lequel la commande pour exécuter votre script est définie.
    Découvrez comment créer la commande, que le script soit exécutable ou non, en utilisant l'extension de langue Shebang, voir ici .

    et la ligne:

    Terminal=true
    

    Cela signifie que le script doit être exécuté dans une fenêtre de terminal.

    Vous pouvez étendre votre fichier .desktop avec a.o. une icône et beaucoup d’options, en fonction de l’utilisation que vous en faites, voir ici .

  • Comment utiliser le fichier .desktop

    • Collez le code ci-dessus dans un fichier vide, enregistrez-le sous le nom test.desktop. Editez la commande dans la ligne Exec=/home/jacob/Bureaublad/test.py, en fonction du lien que j'ai ajouté pour créer des commandes permettant d'exécuter un script.
    • Si vous utilisez le fichier à partir de votre bureau, rendez-le exécutable avec la commande:

      chmod +x /path/to/Test.desktop
      

    Vous pouvez également copier (déplacer) le fichier .desktop vers ~/.local/share/applications pour le rendre disponible dans Dash. Les applications installées globalement stockent leurs fichiers .desktop dans /usr/share/applications. Dans les deux derniers répertoires, il n'est pas nécessaire de rendre le fichier .desktop exécutable.

A propos des exemples de lignes que vous ne comprenez pas

  • Les lignes:

    #!/usr/local/bin/python
    #!/usr/bin/env python
    

    are shebangs ; la première ligne d'un script, indiquant au shell comment l'exécuter si le script est exécutable et que vous l'exécutez sans python avant le chemin d'accès au script. Puisque vous utilisez python3, le Shebang dans vos scripts devrait normalement être:

    #!/usr/bin/env python3
    

    Plus sur cela, et la relation entre Shebang et le commandement dans le lien ci-dessus.

  • CHMOD X (?) chmod +x est probablement ce que vous voulez dire. Comme expliqué ci-dessus, vous pouvez créer un fichier exécutable avec la commande:

    chmod +x /path/to/file
    
8
Jacob Vlijm

Comme mentionné par d'autres, chmod + x est nécessaire pour rendre le programme exécutable. Par exemple, pour le programme hello.py, vous devez saisir ceci dans le terminal:

$ chmod + x hello.py

Maintenant, je ne sais pas si cela est vrai dans les versions précédentes, mais dans Ubuntu 16.04 LTS, il est nécessaire que le comportement des icônes soit défini pour permettre de cliquer sur l'icône pour exécuter le programme. Vous pouvez le faire de la manière suivante:

Accédez à une fenêtre du navigateur de fichiers, déplacez le curseur de la souris vers le haut de l'écran et sélectionnez Édition> Préférences> Comportement, puis sélectionnez "Exécuter les fichiers texte exécutables à leur ouverture" ou "Demander à chaque fois".

De plus, pour empêcher le terminal de se fermer à la fin du programme (par exemple, si vous souhaitez conserver la sortie du programme sur le terminal à l'écran), vous devez mettre cette ligne à la fin du programme en python3.5 :

contribution()

J'espère que cela t'aides.

0
user198845