0

この場所にあるPython msiをプログラムでインストールするにはどうすればよいですか:

X:\install\python-3.3.2.msi

subprocess.call()またはを使用できることはPopen()知っていますが、他のパラメーターを自動的に設定する方法がわかりません。プログラムをすべてのユーザーが利用できるようにするなど。

私がやろうとしているのは、スクリプトを実行するたびに、スクリプトpython-3.3.2.msiが実行されているマシンにインストールされるように、Python スクリプトから msi アプリケーションを実行することです。

ここで、Python msi インストーラーがサイレント インストールをサポートするかどうかという新たな疑問が生じます。実際には、インストールをサイレントにしたいです。つまり、インストーラーがコマンドライン呼び出しからのすべてのパラメーターを「認識」し、ユーザーの操作がまったく必要ないことを望みます。以下の Viktor Kerkez のコメントを見て、あなたもそうするかどうか教えてください。

コマンドラインから必要なパラメータをすべて伝えることはできますか?

4

1 に答える 1

1

通常、適切に設計された MSI はすべてサイレント インストールできます。指定された標準コマンド ラインを試してみる必要があります。その他のオプション パラメータは、ディレクトリの TARGETDIR などです。

msiexec パラメーター "/quiet" と "/qn" は同じことを行います。両方を使用しないでください。

あなたの場合の主な問題は、管理者権限に関するものです。特別なこと (手動マニフェストの追加/変更など) を行っていない場合、通常、スクリプトは管理者権限では実行されません。パラメータ「/qn」の代わりに「/qb」を使用すると、通常、MSI が UAC を表示するはずです。最初に試してみてください。これは最も簡単な (おそらく絶対に最適ではない) ソリューションです。サイレントではありませんが、無人インストールで十分な場合があります。または「/qb+」でも、最終的なボックスが表示されます。

スクリプトからインストール (または管理者権限が必要なその他すべて) を開始するには、次のものが必要です。

1) 実行時にすでに管理者権限を取得している .exe からのブート ストラップ呼び出し (記述された setup.exe など)

2) 右マウス クリックまたは右マウス/シェル統合のために手動で追加されたシェル エントリを使用して、管理者権限でスクリプトを開始すること。

3) pyhton インタープリター自体のマニフェストを変更します (または、互換性フラグ「常に管理者権限が必要」を試してください)。

どちらに行くか教えていただければ、より詳細なヒントを提供できるかもしれません。共通点がある次の SE の質問の回答を読んでください。 msiexec と c# を使用して msi をインストールします。

于 2013-08-09T13:05:28.103 に答える