Come posso rendere eseguibile un file Python su macOS Sierra?


2

Ho cercato su Internet per giorni ormai, solo per trovare un modo per rendere eseguibile un file Python. Ho provato (chmod + x nomefile.py) aggiungendo #!/usr/bin/env pythonin alto, ma sembra che nulla funzioni. Inoltre sto usando brew per installare i moduli, quindi quando premo pip install py2app come nell'esempio, ricevo un messaggio che dice: Hai Python già installato da home-brew .

Qualcuno può spiegare come posso rendere eseguibile un file Python su macOS Sierra?


Come stai cercando di eseguire e qual è il risultato?
Gordon Davisson l'

Sto cercando di eseguirlo semplicemente facendo doppio clic sul file e dovrebbe comparire sul terminale, come un'app terminale
ombreggiata

Quindi la risposta di Monomeeth è l'approccio giusto.
Gordon Davisson,

Risposte:


3

Prova quanto segue e fammi sapere come vai:

  1. Assicurati che la prima riga del tuo script Python sia #!/usr/bin/env python
  2. Cambia l'estensione del file in .command (cioè se il file che vuoi rendere eseguibile si chiama Test.py, cambialo in Test.command)
  3. In Terminal, esegui il file di script Python eseguendolo chmod +x Test.command(ovviamente Test.command sarà qualunque sia il tuo file dal passaggio 2 sopra).

Seguendo i passaggi precedenti, dovresti essere in grado di fare doppio clic sullo script Python in macOS Sierra e si aprirà una finestra terminale ed eseguirà lo script.


Grazie, signore, ho provato quello che hai detto sopra nello stesso modo in cui l'hai spiegato, ma la stessa cosa, ho salvato il mio file sul desktop e rinominato in (Test.command) e ho provato il chmod + x Test.command su terminale, e non è successo nulla non ha creato la versione eseguibile del file, ho anche fatto clic sul file dopo aver modificato l'estensione ed è stato eseguito nel terminale ma è quello che ho ottenuto "/Users/sh/Desktop/Test.command: line 4: print: comando non trovato logout "sapendo che non è nemmeno una versione eseguibile
shadown

@shadown: non esiste una "versione eseguibile" separata del file; il chmodcomando rende eseguibile quel file . L'errore che stai ricevendo sembra provenire da bash, il che suggerisce che lo script è in esecuzione, ma sotto l'interprete sbagliato. L'interprete è controllato dalla prima riga dello script (la riga "shebang"), quindi assicurati che sia corretto.
Gordon Davisson,

1

Installa pyinstaller: pip installa pyinstaller

Crea eseguibile: pyinstaller --onefile yourscriptname.py

Questo ha funzionato per me su MacOS Mojave 10.14.2


1

Quale pitone stai prendendo di mira?

L'hai installato con brew? Utilizza un percorso diverso.

which python3 o which python

Scegli quello che desideri

Copia quell'output

Incollalo nella parte superiore del tuo file Python

aggiungi un #!davanti a quel percorso in modo che assomigli a qualcosa

#!/usr/local/bin/python3

Assicurati di modificare le autorizzazioni del file

chmod +x filename

Metti quel file in una cartella che si trova sul tuo percorso

Non sei sicuro che la tua cartella sia nel tuo percorso?

echo $path

Come aggiungere quella cartella al tuo percorso?

Trova prima il tuo percorso

echo $HOME

Se stai usando bash o zsh potresti avere qualcosa del genere

In ~/.bash_profileo ~/.bashrco ~/.zshrcalla parte inferiore del file

export PYTHON_UTILS="$HOME/code/python/utils"

export PATH="$PYTHON_UTILS:$PATH"

Prendi in considerazione la possibilità di rimuovere .pydal tuo file bc non è necessario in questo caso

Chiudi e apri il tuo terminale, che sta acquistando il tuo file dal suo percorso

E ora dovresti essere in grado di trattare il tuo file Python in modo simile a un comando bash

Non è necessario utilizzare python3 filename.pyper eseguire il file, è sufficiente utilizzarefilename

Da qualsiasi parte del tuo filesystem!


0

Basta salvare il prog con .py ed eseguire inattivo si aprirà per impostazione predefinita, quindi vai alla scheda Esegui e seleziona Esegui modulo o dopo aver fatto clic sul file .py premi F5.

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.