5

Windowsマシンに対して構築しようとしている小さなアプリがあります。プログラムはOpenVPN接続を作成します。プログラムをビルドして実行すると、最初にプログラム出力としてコンソールが開きます。-wpyinstallerにパラメーターを渡して、コンソールが接続された状態でビルドしないようにすると、プログラムはまったく実行されません。正常に開きますが、VPN接続は作成されません。

コンソールを使用すると、すべてが完璧に機能します。

また、アプリケーションの基本的なログを記録して、コードが停止し、何も書き込まれない場所を確認します。私のプログラムにコンソールを使用すると、あらゆる種類のログが吐き出されます。

私のプログラムがコンソールで完全に実行できる理由がわかりませんが、コンソールなしでは何もしません。何か案は?

4

2 に答える 2

4

これに自分で答えるつもりです。何も印刷しないようにしてください。また、すべてのstdoutを、コンソールではなく、ロガー、ファイル、またはその他のものにリダイレクトしてください。

于 2013-03-16T00:33:21.557 に答える
4

同様の問題が発生していましたが、コンソールに送信されるprint/stdoutステートメントが見つかりませんでした。subprocess.Popenを使用し、stdout=subprocess.PIPEをリダイレクトしていました。その後、stderr=subprocess.STDOUTとstdin=subprocess.PIPEを追加すると、プログラムが機能しました。このページ(pythonw.exeを使用するとPython subprocess.call()が失敗します)は、サブプロセスの失敗で機能するのに役立ちました。

于 2015-11-14T20:53:58.587 に答える