search
LoginSignup
3

posted at

Windows向けPython & Visual Studio Codeセットアップ スクリプト

こちらのリポジトリの転記。

1. 概要

1.1. こんな人向け

  • 社内でPythonを広めたいけど、1台ずつ環境構築するのがめんどい。
  • 一発で色々インストールできるAnacondaは、有償化したため使えない。
  • インストール対象のPCがインターネットにつながってないため、pip installが使えない。
  • 利用者のPython/VSCode環境を揃えたい。
  • 一度なんとか環境構築したけど、更新のために複数端末でまた同じ作業をするのは萎える(自分でやってくれないし)。

そんな感じで困った人向けのスクリプト。

1.2. 前提

このツールは以下の環境で利用を前提とする:

  • OSはWindows
  • インストール先はスタンドアローンPC(インターネットにつながっていない/非ブラウザ通信が遮断)
  • 情シスからスタンドアローンPCでのアドミン権限付きアカウントの利用が(一時的に)許可されている
  • スタンドアローンPCでのPowerShellの実行が可能(情シスがPCに制限をかけている場合がある)

1.3. できること

以下を自動で実行する:

  • Pythonのインストール(要アドミン権限)
  • Python仮想環境の作成 & 作成した仮想環境へのパッケージのインストール / 更新
  • VSCodeのインストール(要アドミン権限(初回のみ))/ 更新
  • VSCode拡張機能のインストール / 更新

2. セットアップの準備(配布者向け)

インストーラー等のダウンロードが必要になるため、インターネットが使えるPC(OSはWindows)に本リポジトリをクローンし以下の作業を行う。全部終わらせたら、すべてのファイルを非配布者のPCにコピーして3.に進む。

2.1. Python

  • Pythonインストーラー:

    1. 配布元からダウンロードし、root/Python/installerに配置。
    2. root/Python/settings/installation_settings.jsonの各値を更新。
      • installer: インストーラーのファイル名
      • venvRoot: 仮想環境のルート フォルダーを絶対パスで指定。標準ユーザー権限で読み書きできる場所にしておくのがおすすめ。
      • venvName: この名前の仮想環境をvenvRoot下に作成
  • Pythonパッケージ:

    1. Pythonインストーラーと同じバージョンのPythonをインストール。
    2. root/Python/settings/requirements.txtで、仮想環境にインストールするパッケージを編集。このファイルはインストール用スクリプト等でpip download -r/pip install -rの引数として使用。書き方はドキュメントを参照。
    3. root/Python/packages内のファイルを削除
    4. root/Python/PowerShell(ps1実行可).lnkからPowershellを起動しroot/Python/scripts/download.ps1を実行し、パッケージ インストーラー(.whlファイルとか)をダウンロード。ちなみにroot/Python/PowerShell(ps1実行可).lnkpowershell.exeに起動オプション-ExecutionPolicy Bypassを追加したもの。
  • 共通設定:

    1. root/Python/scripts/profile.ps1: PowerShell起動時に実行されるスクリプト。ユーザーが使いやすいようなコマンドレットを追加するためのもの。(あれば)既存の$PSHome/profile.ps1を上書きするため、不要であればroot/Python/install.ps1Install-Python関数から該当部分を削除。

2.2. VSCode

  • VSCodeインストーラー
    1. 配布元からzip版をダウンロードし、root/VSCode/installerに配置。
    2. root/VSCode/settings/installation_settings.jsonの各値を更新
      • installer: インストーラーのファイル名。初期値"VSCode-win32-x64-*.zip"は、root/VSCode/installerフォルダー内の最新版を取得する(PythonのPath.glob関数で取得したPathのリストの最後のやつ)。
      • dest_folder: VSCodeのインストール先。標準ユーザー権限で読み書きできる場所にしておくのがおすすめ。
  • VSCode拡張機能
    1. 配布元からダウンロードし、root/VSCode/extensionsに配置。VSCodeから直接インストールする場合には、依存パッケージも自動的にインストールされる(Python拡張機能をインストールすればPylanceも自動的に)が、ダウンロードは全て個別に行う必要がある。また、C/C++拡張機能のように、マーケットプレイスからではなく、GitHubから取得しなければならないものもあるため注意すること(どれがそうなのかはやってみないと分からない)。
    2. root/VSCode/settings/extension-list.txtに対象拡張機能を記載。#でコメント アウト可。
  • 共通設定
    1. root/VSCode/Python.lnk: python.exeのショートカット。リポジトリ内に最初からあるものはPython 3.9のものであるためPythonのバージョンに合わせて修正すること。
    2. root/VSCode/settings/settings.json: チームで共有したい設定があればここに記載。
      • 初回インストール時: このsettings.jsonをユーザーの設定として取り込む。
      • 2回目以降: 既存のsettings.jsonに項目がなければ追加、あれば値を上書き(値がリストの場合は追加)。
    3. root/VSCode/patch/00-vscode_attach_PID.ipy: ipython起動時のスクリプト。インストール時に%USERPROFILE%/.ipython/profile_default/startupにコピーされる。デフォルトではJupyter Notebookに自動アタッチするための処理が書かれており、C++等Pythonスクリプト以外からの自動アタッチに必要。Pythonスクリプトからしかアタッチしなければ不要なので、空ファイルにする(そのままでも良い)。(Jupyter Notebookへの自動アタッチについてはこちらを参照。PythonスクリプトからJupyter Notebookへの自動アタッチは2021年のJupyter拡張機能の更新で取り込まれたけど、C++からアタッチする場合はまだ使えるので残している。)
    4. root/VSCode/patch/add_context_menu.reg: コンテキスト メニュー(エクスプローラーで右クリックした時に出るやつ)にVSCodeを追加するためのレジストリー設定。zip版VSCodeのインストールでは、コンテキスト メニューにVSCodeが追加されないため、レジストリーを編集して追加する。更新不要(VSCodeへのパスは root/VSCode/settings/installation_settings.json から読み込むため)。
    5. root/VSCode/patch/code.ps1: 拡張機能インストール時にVSCodeインストール先/bin/code.cmdの代わりに使うためのPowerShellスクリプト。情シスから.cmdファイルや.batファイルが制限されることってあるよね。
    6. root/VSCode/patch/delete_context_men.reg: インストール時には使わない。アンインストール時に使用。

3. セットアップの方法(被配布者向け)

2.で準備したファイル一式をインストール対象のPCにコピーして以下を行う。

3.1. Python

  1. アドミン権限のアカウントでWindowsにログイン
  2. root/Python フォルダーを開き、install.ps1Powershell(ps1実行可).lnkにドラッグ&ドロップ
  3. 1を入力しエンター → Python本体インストール、仮想環境作成、仮想環境へのパッケージのインストール

2回目以降、パッケージの更新だけであればアドミン権限は不要。その場合、自分のアカウント(標準ユーザー)でWindowsにログインし、3.で4を入力しエンター → 仮想環境のパッケージ更新


xlwingsのExcelアドインをインストールする場合には以下も実行(アドミン権限は不要)

  1. 自分のアカウント(標準ユーザー)でWindowsにログイン
  2. root/Python フォルダーを開き、install.ps1Powershell(ps1実行可).lnkにドラッグ&ドロップ
  3. 5を入力しエンター → xlwingsのアドインがExcelにインストールされる

3.2. VSCode

Pythonインストール後に作業。

  1. アドミン アカウントでWindowsにログイン
  2. VSCodeフォルダーを開き、install.pyPython.lnkにドラッグ&ドロップ。
  3. 1を入力しエンター → VSCode本体インストール、コンテキストメニュー追加、拡張機能のインストール
  4. 自分のアカウントでWindowsにログイン
  5. 再度、VSCodeフォルダーを開き、install.pyPython.lnkにドラッグ&ドロップ
  6. 5を入力しエンター → 各種設定が取り込まれる

2回目以降、VSCodeおよび拡張機能の更新だけであればアドミン権限は不要。その場合、自分のアカウント(標準ユーザー)でWindowsにログインし、3.で24のいずれかを入力しエンター → VSCode本体 and/or 拡張機能の更新

3.3. 利用時のヒント

  • インストール後はVSCode上のPowerShellで仮想環境(base:venv)が有効になる。
    また、コマンドActivate-Venv baseで有効にすることもできる(コマンドActivate-Venv baseはショートカットPowerShell(ps1実行可)から起動した場合も利用可)。
  • VSCode内のPowerShellで仮想環境が有効となっていない場合には、Python拡張機能が有効な状態でCtrl+Shift+@を押せば、仮想環境が有効なPowershellを開くことができる。

4. アンインストール(被配布者向け)

4.1. Python

通常どおり、Windowsの機能からアンインストール。

4.2. VSCode

インストール先のフォルダーを削除。コンテキスト メニューにVSCodeはroot/VSCode/patch/delete_context_menu.regを実行し削除。

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
What you can do with signing up
3