2010-01-23 17 views
6

Ho un app CherryPy che ho fatto un exe con pyinstaller. ora quando eseguo l'exe si carica due volte in memoria. Guardando il task manager viene mostrato il primo carico istanza in circa 1k, quindi un secondo dopo una seconda istanza di hte exe carica in circa 3k ram. Se chiudo quello più grande, entrambi i processi muoiono. Se chiudo più piccolo, solo quello muore.pyinstaller: 2 istanze della mia cherrypy applicazione exe ottenere eseguito

Caricamento l'exe con sottoprocesso, se provo a proc.kill(), uccide solo il piccolo lasciando l'altro in esecuzione in memoria. Si tratta di un effetto collaterale dell'uso di cherrypy e pyinstaller insieme?

risposta

1

Sarebbe importante sapere quale versione di CherryPy si sta utilizzando. La linea 2.x aveva uno sfortunato design: la funzione autoreloader avviava sempre una seconda istanza di CherryPy, quindi la prima poteva rigenerare il bambino quando veniva ucciso. Questo è stato risolto nella versione 3 per utilizzare solo un processo. Se si utilizza la versione 2, disattivare la funzione di autoreload tramite la voce di configurazione:

[global] 
autoreload.on = False 
3

PyInstaller genera un sottoprocesso durante il processo di avvio. Questo è spiegato in a section of its manual.

+0

Ciao Giovanni, è sempre un piacere parlare con te. Ho bisogno del tuo supporto ed esperienza riguardo questa domanda: http://stackoverflow.com/questions/14997414/obfuscating-python-bytecode-through-interpreter-mutation/14997695 - Grazie :) – securecurve

Problemi correlati