web-dev-qa-db-ja.com

python 2.7 Windowsサイレントインストーラー(.msi)-パスを設定するコマンドラインオプション?

サイレントインストーラー(.msi)を使用してWindowsにpython 2.7をインストールする場合、GUIなどのパス環境変数にPythonを追加するコマンドラインオプションはありますか?オプション?

Python3.5インストーラーにはデフォルトでオプションPrependPath = 0が含まれていますが、Python 2.7で使用できますか?

https://docs.python.org/3/using/windows.html

この問題はここで説明されているようですが、Python 2.7?

https://bugs.python.org/issue3561

編集


このバッチコマンドは素晴らしいです!!!

setx\M PATH "%PATH%; C:\ Python\Python27; C:\ Python\Python27\Scripts"

ただし、setxは、格納されている%PATH%文字列を1024バイトに切り捨てます。

9
denfromufa

Python MSIインストーラーは2.4以降のシステムパスを更新できます。コマンドラインにADDLOCAL = ALLを追加するだけです。システムが伝播する前に、システムを再起動する必要があります。

msiexec /i "python-2.7.11.AMD64.msi" /passive /norestart ADDLOCAL=ALL

https://www.python.org/download/releases/2.4/msi/

12
tahoar

python 2.7.14x64のWindows7(Professional)では、PythonをPATHに追加するために再起動する必要はありません。起動するだけです。インストール後の新しいコマンドウィンドウとpythonがPATHにあります。

次のようにmsiを実行することにより、インストールで再起動が必要かどうかを判断できます。

start/wait "" msiexec /i "python-2.7.11.AMD64.msi" /passive /norestart ADDLOCAL=ALL
if %errorlevel% == 3010 ( echo Success: reboot required ) else (if %errorlevel% == 0 ( echo Success ) else ( echo Installation failed with error code %errorlevel% ) )

つまり、%errorlevel%が3010(ERROR_SUCCESS_REBOOT_REQUIRED)の場合、再起動が必要になります。 start/waitを使用すると、cmd.exeはmsiexecプロセスが終了するまで待機します。これにより、msiexecの戻りステータスをcmd.exeで使用できるようになります。

ところで、システム上のすべてのユーザーがPythonのインストールを利用できるようにする場合は、コマンドラインにオプションALLUSERS=1を含めることをお勧めします。

2
J. Beattie