7

私はpyinstallerでexeを作成したcherrypyアプリを持っています。exeを実行すると、メモリに2回読み込まれます。タスクマネージャを見ると、最初のインスタンスが約 1k にロードされ、2 番目のインスタンスが約 3k RAM にロードされます。大きい方を閉じると、両方のプロセスが停止します。小さい方を閉じると、その方だけが死にます。

サブプロセスを使用してexeをロードすると、proc.kill()を実行しようとすると、小さなものだけが強制終了され、他のプロセスはメモリ内で実行されます。これは、cherrypy と pyinstaller を一緒に使用した場合の副作用ですか?

4

2 に答える 2

6

PyInstaller は、ブート プロセス中にサブプロセスを生成します。これは、そのマニュアルのセクションで説明されています。

于 2010-04-14T23:40:50.063 に答える
1

使用している CherryPy のバージョンを知ることが重要です。2.x ラインには残念な設計がありました。オートリローダー機能は常に CherryPy の 2 番目のインスタンスを開始するため、最初のインスタンスは子が強制終了されたときに再生成される可能性がありました。これはバージョン 3 で修正され、1 つのプロセスのみを使用するようになりました。バージョン 2 を使用している場合は、config エントリで自動リロード機能をオフにします。

[global]
autoreload.on = False
于 2010-01-25T05:52:26.150 に答える