PyPy / RPython può essere utilizzato per la produzione di un piccolo eseguibile standalone?
-
27-09-2019 - |
Domanda
(o, "Can PyPy / RPython essere utilizzato per compilare / tradurre Python per C / C ++ senza richiedere il runtime Python ?")
ho cercato di comprendere PyPy con la sua RPython e la sua Python, il suo funzionamento e la sua compilazione e la sua traduzione, e hanno un po 'fallito.
Ho un progetto ipotetico Python (per Windows); Vorrei mantenere la sua dimensione verso il basso, nell'ordine di un centinaio di kilobyte (O.N.O.) piuttosto che i diversi megabyte che utilizzano comporta py2exe (dopo UPX). Posso usare PyPy 1 in alcun modo per produrre un eseguibile standalone, che non dipende da Python26.dll? Se posso, ne ha bisogno di seguire le restrizioni RPython come for
solo che lavorano su tipi built, o si tratta di sintassi completa Python?
mi rendo conto che se questo può essere fatto che quasi certamente non potevo usare moduli C da Python direttamente.
1 (Dal momento che il tempo di chiedere, la situazione è diventata più chiara, e questa parte della toolchain è più chiaramente con il marchio di RPython piuttosto che PyPy, ma non è stato così nel 2010 .)
Soluzione
Sì, PyPy può produrre eseguibili standalone dal codice RPython. Ciò significa, è necessario seguire tutte le regole RPython scomode quando si tratta di scrivere codice. Il tuo codice Python è completamente improbabile che la funzione fuori dalla scatola e il porting del codice Python esistente di solito non è divertente. Non farà gli eseguibili piccolo come C, ma per esempio bersaglio rpystone (da PyPy / traduttore / goal) utilizzando Boehm GC è 80k su 64bit dopo stripping.