os.system
を使用してさまざまなコマンドを実行するPythonプログラムがあります。 (subprocess
を使用することはできません。なぜなら、Python 2.0まで下位互換性がなければならないからです。「X.dllが見つからないためプログラムを起動できません」エラーポップアップ
Windowsでは、時々コマンドが異常なディレクトリのDLLを参照することがあるため、 「X.dllが見つかりません」というエラーポップアップが表示されます。
私の質問は、コマンドは、すべてのDLLを見つけるようにする方法についてではありません。私はすでにそれを行う方法を知っています。私が知りたいことは、Windowsにが表示されないようにするにはどうすればいいですか? DLLが見つからないときは?代わりに、子プロセスはstderr(os.system
呼び出し内のファイルにリダイレクトされている)にエラーメッセージを出力し、エラーコードを返すようにします(os.system
にエラーコードが返されます)。そうすれば、誰かがOKをクリックするまで来るまで、私のプログラムはエラーを捕捉して独自の方法で報告することができます。
MSDNは、通常、私の友人ですが、今回は、欠落している特定のDLLに対処する方法についてアドバイスを得ています。
これを繰り返しても、これは後方互換性が非常に悪い状況です。私は、Python 2.7またはそれ以前のバージョンの2.0からすべての方法で動作するソリューションが必要です。それはまた、Windows(XP、Vista、7、8)のすべての普及しているバージョンで動作する必要があります。 で作業してもより古い Windowsは非常に望ましいですが、100%必要ではありません。さらに、他の言語で書かれたサードパーティのモジュールやヘルパープログラムはオプションではありません。 (.BAT
ファイルが問題ありません。
少しわかりますか? Pythonを使わずにこのマシンでcl.exeを実行すると、同じエラーがポップアップしますか? – Krets
私が選んだいくつかの 'PATH'設定のどれかによっては、そうでないかもしれません。 *しかし、それは問題のポイントではありません。*私はすでに 'PATH'を調整する方法を知っています。問題は、このアウトオブバンドのダイアログボックスではなく、*エラー*を私のプログラムに報告する方法です。 – zwol