2010-01-23 9 views
6

Ich habe eine cherrypy App, die ich eine exe mit pyinstaller gemacht habe. jetzt, wenn ich die exe ausführe es lädt sich zweimal in den Speicher. Beobachten der Taskmanager zeigt die erste Instanz laden in etwa 1k, dann eine Sekunde später eine zweite Instanz von hte exe lädt in etwa 3k RAM. Wenn ich den größeren schließe, sterben beide Prozesse ab. Wenn ich den kleineren schließe, stirbt nur einer.pyinstaller: 2 Instanzen meiner cherrypy app exe ausgeführt werden

Loading die Exe mit Subprozess, wenn ich proc.kill() versuchen, es tötet nur die kleine eine andere im Speicher ausgeführt wird. Ist das ein Nebeneffekt der Verwendung von cherrypy und pyinstaller zusammen?

Antwort

1

Es wäre wichtig zu wissen, welche Version von CherryPy Sie verwenden. Die 2.x-Linie hatte ein unglückliches Design: die Autoreloader-Funktion startete immer eine zweite Instanz von CherryPy, so dass die erste das Kind respawnen konnte, wenn es getötet wurde. Das wurde in Version 3 behoben, um nur einen Prozess zu verwenden. Wenn Sie Version 2 verwenden, schalten die Autonachlademode Funktion über das Config-Eintrag aus:

[global] 
autoreload.on = False 
3

PyInstaller startet einen subprocess während seiner Boot-Prozess. Dies wird in a section of its manual erklärt.

+0

Hallo Giovanni, es ist immer ein Vergnügen mit dir zu reden. Ich brauche Ihre Unterstützung und Erfahrung in Bezug auf diese Frage: http://stackoverflow.com/questions/14997414/obfuscating-python-bytecode-through-interpreter-mutation/14997695 - Danke :) – securecurve

Verwandte Themen