0

py2appで配布するアプリケーションを構築しています。ソースを.appファイルから抽出したくないので、run.pyという名前のスタブファイルがあります。このファイルは、mainapp.pyのコードを実行します。

import mainapp

これをターミナルで直接実行すると(py2appの関与なし)、コードのgeventに依存する部分がフリーズします。.appに変換しても結果は同じです。上記の方法でインポートすると、インタプリタの環境が変わりますか?フリーズするだけで、エラーメッセージが表示されないのは奇妙に思えます(try / catchブロックはありません)。

4

1 に答える 1

0

Python でモジュールをインポートすると、そのモジュールが実行されます。mainappPython VM をフリーズさせる可能性のある「フリー コード」(無限ループなど) が含まれていないことを確認してください。

「フリーコード」は、関数またはクラス定義の外にある一連の命令です。

たとえば、

import one_module

while(true) :
    various_code()

def foo() :
    print "bar"

2 行目はフリーコードです。

このスクリプトをインポートしようとすると、while命令が実行され、Python がフリーズします。

于 2011-10-19T20:06:31.227 に答える