2010-01-23 10 views
6

Mam aplikację cherrypy, którą utworzyłem exe z programem do usuwania piosenek. teraz po uruchomieniu exe ładuje się dwa razy do pamięci. Oglądanie menedżera zadań pokazuje ładunek pierwszej instancji na około 1k, a sekundę później druga instancja hte exe ładuje się do około 3k pamięci. Jeśli zamknę większy, oba procesy zginą. Jeśli zamknę mniejszy tylko ten, który umrze.Pyinstaller: 2 instancje mojej aplikacji cherrypy exe zostają wykonane

Ładowanie exe z podprocesu, jeśli próbuję proc.kill(), zabija tylko mały pozostawiając drugi uruchomiony w pamięci. Czy jest to efekt uboczny stosowania cherrypy i pyinstallera?

Odpowiedz

1

Ważne jest, aby wiedzieć, jakiej wersji CherryPy używasz. Linia 2.x miała niefortunny wygląd: funkcja autoreloadera zawsze uruchamiała drugą instancję CherryPy, więc pierwszy mógł odrodzić dziecko po jego zabiciu. Zostało to naprawione w wersji 3, aby używać tylko jednego procesu. Jeśli używasz wersji 2, wyłączyć funkcję autoreload poprzez wejścia config:

[global] 
autoreload.on = False 
3

PyInstaller ikra podproces podczas procesu uruchamiania. Zostało to wyjaśnione w a section of its manual.

+0

Witaj Giovanni, to zawsze przyjemność rozmawiać z tobą. Potrzebuję twojego wsparcia i doświadczenia w związku z tym pytaniem: http://stackoverflow.com/questions/14997414/obfuscating-python-bytecode-through-interpreter-mutation/14997695 - Thanks :) – securecurve