Eseguibili e Python

4

Ho iniziato a imparare la mia prima lingua di recente, Python, e mi sono interessato a come differiva dalla miriade di altri linguaggi di programmazione.

Sono riuscito a trovare la maggior parte di esso con qualche ricerca:

Esiste un linguaggio interpretato, compilato e assemblato. Poi c'è il codice numerico della macchina (che come ho capito è solo binario?) Che viene letto direttamente dall'hardware. Quindi Python è un linguaggio interpretato perché non è esplicitamente compilato in codice macchina (anche se da quello che ho capito questa è una falsa distinzione dal momento che la maggior parte del codice è sia compilata che interpretata, anche se solo dietro le quinte).

Ho ancora una domanda che non riesco a capire come cercare una risposta. Presumo che il codice Python richieda la lettura della piattaforma Python perché contiene l'interprete. Ma come si ottengono quei programmi "standalone" .exe che è possibile eseguire sulla maggior parte dei computer? Questi file utilizzano solo una piattaforma che ogni computer ha per impostazione predefinita o sono questi file che sono già stati compilati completamente in codice macchina? (Come con C ++?)

La ragione principale per cui mi sto chiedendo è che volevo mandare qualcuno ai miei semplici programmi Python senza averli installati. Ho cercato online e ho trovato alcuni "compilatori"? questo lo farà, ma non sembrano funzionare molto bene e sono molto difficili da lavorare.

    
posta Daynil 19.06.2013 - 01:59
fonte

2 risposte

1

Il commento di MichaelT è azzeccato. Cose come py2exe eseguono le seguenti operazioni:

  • bundle runtime python per una piattaforma particolare con il tuo codice python e tutte le sue dipendenze
  • crea un eseguibile autoestraente che estrae tutto ciò che precede e avvia lo script

Ottieni un pacchetto pronto all'uso per una singola piattaforma. Sacrifichi la portabilità.

    
risposta data 19.06.2013 - 04:33
fonte
0

Gli interpreti stessi sono compilati e dipendenti dalla piattaforma su cui vengono eseguiti a causa di diversi problemi di architettura e sistema operativo (ad esempio diverse librerie C e gestione dei file). Quindi non c'è modo di aggirare la dipendenza dalla piattaforma interamente nell'installazione. Tuttavia come dici tu ci sono modi per impacchettarlo in un pacchetto in modo che sia più facile per la distribuzione all'utente che non ha bisogno di installare l'interprete e altre dipendenze.

PyInstaller sembra essere in grado di fare ciò che vuoi senza troppa confusione e può creare pacchetti per le piattaforme più comuni ed è facile da gestire La cosa principale che ho trovato con Windows è che devi anche installare PyWin32 (assicurandoti di avere il corretto bitness a seconda della versione di Python installata).

    
risposta data 19.06.2013 - 05:27
fonte

Leggi altre domande sui tag