2011-12-16 15 views
1

あるスクリプトが別のスクリプトを呼び出して終了することは可能ですか(私がこの権限を持っているかどうかわかりません)、他のスクリプトを実行したままにしますか?具体的には、installer.pyをダウンロードして実行する更新スクリプトが必要です。 installer.pyは更新スクリプトを上書きするので、 '古いインストールの削除'段階で失敗するため、subprocess.call()を実行することはできません。Pythonで実行を新しいスクリプトに切り替える方法は?

これは可能ですか?代わりに、アップデータスクリプトだけを残して、他のものをすべて置き換え、新しいものを一時ディレクトリに置き、次にプログラムを実行するときに置き換える必要がありますか?これはより良いアプローチと考えられますか?

ありがとうございました。これが明白であればごめんなさい。

+0

注意Pythonモジュールがインポートされたので、ソースファイルは必要ありません。したがって、更新スクリプトでサブプロセスとしてインストーラを実行することは可能です。また、更新スクリプトが古いバージョンを再ロードする必要がない限り、 〜すべき大丈夫です。 –

答えて

3

os.exec* familyの機能のうちの1つが、必要な機能を備えている必要があります。

+0

本当にありがとうございます - それはちょうど事のように見えます。私は試してみましょう。 – 2e0byo

0

別のPythonスクリプトをダウンロードしているので、execを実行してみてください。 2.xには、この種のヘルパー関数execfileがあります(これはexecキーワードを使用しています; 3.xではファイルを読み込み、結果の文字列をexecに渡す必要があります。 「)を正しく読んメートル。

あなたはいつもあなたがこのようなケースでは、コンテンツを信頼して110%を確認する必要があります!これはしかし、あなたのための問題ではないようです。一度その

+0

Pythonのexecは、他の言語ではevalと似ていますが、libc execのようなものではありません。特に、現在のプログラムを置き換えるものではありません。 – Tobu

関連する問題