LoginSignup
0
0

More than 1 year has passed since last update.

PowerShellでPython3.1.5をインストールするスクリプト

Posted at

概要

PowerShellでPythonをインストールし、WindowsでPythonの実行環境を構築するスクリプトを書いたので備忘録として投稿。
InstallALlUsersでインストールしているため利用する場合は管理者権限で実行してください。

  • インストールされるバージョン:3.10.5
  • インストール先: C:\Program Files\python310

スクリプト

#Python3.10.5 インストーラダウンロード
Write-Host "Pythonインストーラをダウンロードします"
Invoke-WebRequest -Uri "https://www.python.org/ftp/python/3.10.5/python-3.10.5-amd64.exe" -OutFile $env:temp\python.exe
if(!(Test-Path $env:temp)){
  $Host.UI.WriteErrorLine("ダウンロードに失敗しました。")
  exit 1
}

#Python3.10.5 インストール
Write-Host "インストールを開始します。"
Start-Process "$env:temp\python.exe" -ArgumentList "PrependPath=1","InstallAllUsers=1","/quiet" -wait

#Python3.10.5 インストーラ削除
Write-Host "インストーラを削除します"
Remove-Item $env:temp\python.exe -force

#環境変数の更新と確認
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
$paths = $env:path.split(";")
$paths.foreach({if($PSItem -like 'C:\Program Files\Python310\'){ Write-Host "正常にインストールが完了しました"; break }})


解説

味気ないので一応解説します。

インストーラのダウンロード

まず初めに公式のダウンロードリンクからPython3.10.5のインストーラを一時フォルダにダウンロードしています。

#Python3.10.5 インストーラダウンロード
Write-Host "Pythonインストーラをダウンロードします"
Invoke-WebRequest -Uri "https://www.python.org/ftp/python/3.10.5/python-3.10.5-amd64.exe" -OutFile $env:temp\python.exe

ダウンロードするバージョンを変更したい場合は-Uriの引数を変更してください。

ダウンロード終了後、ダウンロードファイルが存在している(ダウンロードに成功している)ことを確認しています。
※Try-Catchなりできるのかしら? 有識者が見ていたら教えてください。

if(!(Test-Path $env:temp)){
  $Host.UI.WriteErrorLine("ダウンロードに失敗しました。")
  exit 1
}

存在しない場合はexit 1でエラー終了させます。

サイレントインストール

Python3.10.5をサイレントインストールします。
/quietがサイレントインストールのオプションです。
その他のオプションについてはこちらのリファレンスを参照してください。

#Python3.10.5 インストール
Write-Host "インストールを開始します。"
Start-Process "$env:temp\python.exe" -ArgumentList "PrependPath=1","InstallAllUsers=1","/quiet" -wait

インストーラファイルの削除

インストール完了後、インストーラファイルを削除します。

#Python3.10.5 インストーラ削除
Write-Host "インストーラを削除します"
Remove-Item $env:temp\python.exe -force

環境変数確認

インストール時に環境変数を設定しているため、環境変数を再読込し、パスが正常に通っていることを確認します。
正常にパスが通っている場合、インストールは正常終了したとみなします、

#環境変数の更新と確認
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User")
$paths = $env:path.split(";")
$paths.foreach({if($PSItem -like 'C:\Program Files\Python310\'){ Write-Host "正常にインストールが完了しました"; break }})
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0