Cosa uso su Linux per rendere eseguibile un programma Python


91

Ho appena installato un sistema Linux (Kubuntu) e mi chiedevo se esiste un programma per rendere eseguibili programmi python per Linux.




2
No, non c'è risposta lì. Quella domanda fa domande sui problemi di distribuzione.
tzot

No, non è uno stupido. Questa domanda è correlata alla distribuzione di software python che evita la disponibilità della libreria e problemi di compatibilità.
tzot

Risposte:


163

Metti questo nella prima riga del tuo script:

#!/usr/bin/env python

Rendi il file eseguibile con

chmod +x myfile.py

Esegui con

./myfile.py

8
Non ho capito bene. Come funziona "#! / Usr / bin / env python" quando si suppone che l'hash ne faccia una riga commentata? Ho provato a eseguire lo script senza la riga hash, ma non ha funzionato. Quindi ovviamente la riga è obbligatoria, ma come funziona se è un commento?
Nav

5
Se stai inviando script a un collega programmatore, va bene. Ma questo non è un modo adatto per distribuire programmi Python agli utenti finali. E se l'utente non ha installato Python? E se lo facessero, ma è una versione diversa da quella in cui hai scritto il programma? Nel complesso questo funzionerà solo per una piccola percentuale di utenti, specialmente su Windows.
Jonathan Hartley

5
@MathManiac Se procedi come intendi, circa il 15% degli utenti non sarà in grado di eseguire la tua applicazione. Questo sarà un fardello di supporto paralizzante, per non parlare di un'esperienza utente incredibilmente ostile, che genererà un torrente di post odiosi "l'applicazione X fa schifo". Sostengo la mia affermazione che questo non è un modo adatto per distribuire le applicazioni agli utenti finali.
Jonathan Hartley

3
@PrahladYeri usa # / usr / bin / env python3
kingledion

4
@Nav Quello si chiama Shebang . È commentato perché non dovrebbe essere interpretato da Python. Fornisce informazioni al sistema operativo. Più specificamente dice quale programma dovrebbe essere usato per eseguire lo script.
MannyC

16

Se vuoi ottenere un'applicazione binaria stand-alone in Python prova a usare uno strumento come py2exe o PyInstaller .


parola chiave: standalone
D Adams

Posso decompilare l'output di PyInstaller?
SuB

15

Puoi usare PyInstaller. Genera una build dist in modo che tu possa eseguirlo come un singolo file "binario".

http://pythonhosted.org/PyInstaller/#using-pyinstaller

Python 3 ha anche l'opzione nativa di creare una build dist:

https://docs.python.org/3/distutils/builtdist.html


la domanda non riguarda la creazione di file exe / elf di script Python
warvariuc

8
Scusa ma sembra che la domanda sia proprio quella! "mi chiedevo se esiste un programma per rendere eseguibili programmi Python per Linux."
Leo Pepe

Grazie mille, @LeoPepe, ho appena creato un partecipante alla mia classe, che prende input (nomi degli studenti presenti) da un file e dà la presenza in un file di output, semplicemente facendo clic su uno script eseguibile creato con l'aiuto di pyinstaller.
Genius

5

Mettere queste righe all'inizio del codice dirà ai vostri sistemi operativi di cercare il programma binario necessario per l'esecuzione dello script python, cioè è l'interprete python.

Quindi dipende dal tuo sistema operativo in cui mantiene l'interprete Python. Dato che ho Ubuntu come sistema operativo, mantiene l'interprete Python, /usr/bin/pythonquindi devo scrivere questa riga all'inizio del mio script Python;

#!/usr/bin/python

Dopo aver completato e salvato il codice

  1. Avvia il tuo terminale di comando

  2. Assicurati che lo script si trovi nella tua attuale directory di lavoro

  3. genere chmod +x script_name.py

  4. Ora puoi avviare lo script facendo clic sullo script. Apparirà una finestra di avviso; premere "Esegui" o "Esegui nel terminale" nella casella di avviso; oppure, al prompt del terminale, digitare./script_name.py


4

Se uno vuole rendere eseguibile hello.py

prima trova il percorso in cui si trova python nel tuo sistema operativo con: which python

di solito risiede nella cartella "/ usr / bin / python".

alla primissima riga di hello.pyuno dovrebbe aggiungere:#!/usr/bin/python

poi tramite il comando linux chmod

si dovrebbe solo renderlo eseguibile come: chmod +x hello.py

ed eseguire con ./hello.py


1

Faccio quanto segue:

  1. mettere #! / usr / bin / env python3 all'inizio dello script
  2. chmod u + x file.py
  3. Cambia .py in .command nel nome del file

Questo essenzialmente trasforma il file in un eseguibile bash. Quando fai doppio clic su di esso, dovrebbe essere eseguito. Funziona nei sistemi basati su Unix.


0

Un altro modo per farlo potrebbe essere la creazione di un alias. Ad esempio nel terminale scrivi:

alias printhello='python /home/hello_world.py'

La scrittura printhelloverrà eseguita con hello_world.py, ma è solo temporanea. Per rendere permanenti gli alias, devi aggiungerli a bashrc, puoi modificarlo scrivendo questo nel terminale:

gedit ~/.bashrc
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.