- 社内でPythonを広めたいけど、1台ずつ環境構築するのがめんどい。
- 一発で色々インストールできるAnacondaは、有償化したため使えない。
- インストール対象のPCがインターネットにつながってないため、
pip install
が使えない。 - 利用者のPython/VSCode環境を揃えたい。
- 一度なんとか環境構築したけど、更新のために複数端末でまた同じ作業をするのは萎える(自分でやってくれないし)。
そんな感じで困った人向けのスクリプト。
このツールは以下の環境で利用を前提とする:
- OSはWindows
- 各種ファイルの準備にインターネットにつながったPCが必要
- インストール先はスタンドアローンPC(インターネットにつながっていない/非ブラウザ通信が遮断)
- 本フォルダーのパスに空白が含まれていない。
- 情シスからスタンドアローンPCでのアドミン権限付きアカウントの利用が(一時的に)許可されている
- スタンドアローンPCでのPowerShellの実行が可能(情シスがPCに制限をかけている場合がある)
以下を自動で実行する:
- Pythonのインストール(要アドミン権限)
- Python仮想環境の作成 & 作成した仮想環境へのパッケージのインストール / 更新
- VSCodeのインストール(要アドミン権限(初回のみ))/ 更新
- VSCode拡張機能のインストール / 更新
インターネットが使えるPC(OSはWindows)で以下の作業を行う。本リポジトリをクローンや、インストーラー等のダウンロードが必要になるため。全部終わらせたら、すべてのファイルを非配布者のPCにコピーして3.に進む。
-
配布元から、利用したいバージョンのPythonインストーラーダウンロードし、インストール。
-
Pythonインストーラー: 2. ↑でダウンロードしたインストーラーを
root/Python/installer
に配置。 3.root/Python/settings/installation_settings.json
の各値を更新。installer
: インストーラーのファイル名venvRoot
: 仮想環境のルート フォルダーを絶対パスで指定。標準ユーザー権限で読み書きできる場所にしておくのがおすすめ。venvName
: この名前の仮想環境をvenvRoot
下に作成する。
-
Pythonパッケージ:
root/Python/settings/requirements.txt
に、仮想環境にインストールするパッケージを記述。このファイルはインストール用スクリプト等でpip download -r
/pip install -r
の引数として使用。書き方はドキュメントを参照。root/Python/packages
内のファイルを削除root/Python/PowerShell(ps1実行可).lnk
からPowershellを起動しroot/Python/scripts/download.ps1
を実行し、パッケージ インストーラー(.whl
ファイルとか)をダウンロード。ちなみにroot/Python/PowerShell(ps1実行可).lnk
はpowershell.exe
に起動オプション-ExecutionPolicy Bypass
を追加したもの。
-
共通設定:
root/Python/scripts/profile.ps1
: PowerShell起動時に実行されるスクリプト。ユーザーが使いやすいようなコマンドレットを追加するためのもの。(あれば)既存の$PSHome/profile.ps1
を上書きするため、不要であればroot/Python/install.ps1
のInstall-Python
関数から該当部分を削除。
- VSCodeインストーラー
- 配布元からzip版をダウンロードし、
root/VSCode/installer
に配置。 root/VSCode/settings/installation_settings.json
の各値を更新installer
: インストーラーのファイル名。初期値"VSCode-win32-x64-*.zip"
は、root/VSCode/installer
フォルダー内の最新版を取得する(PythonのPath.glob
関数で取得したPathのリストの最後のやつ)。dest_folder
: VSCodeのインストール先。標準ユーザー権限で読み書きできる場所にしておくのがおすすめ。
- 配布元からzip版をダウンロードし、
- VSCode拡張機能
- 配布元からダウンロードし、
root/VSCode/extensions
に配置。VSCodeから直接インストールする場合には、依存パッケージも自動的にインストールされる(Python拡張機能をインストールすればPylanceも自動的に)が、ダウンロードは全て個別に行う必要がある。また、C/C++拡張機能のように、マーケットプレイスからではなく、GitHubから取得しなければならないものもあるため注意すること(どれがそうなのかはやってみないと分からない)。 root/VSCode/settings/extension-list.txt
に対象拡張機能を記載。#
でコメント アウト可。
- 配布元からダウンロードし、
- 共通設定
root/VSCode/Python.lnk
: python.exeのショートカット。リポジトリ内に最初からあるものはPython 3.9のものであるためPythonのバージョンに合わせて修正すること。root/VSCode/settings/settings.json
: チームで共有したい設定があればここに記載。- 初回インストール時: この
settings.json
をユーザーの設定として取り込む。 - 2回目以降: 既存の
settings.json
に項目がなければ追加、あれば値を上書き(値がリストの場合は追加)。
- 初回インストール時: この
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++からアタッチする場合はまだ使えるので残している。)root/VSCode/patch/add_context_menu.reg
: コンテキスト メニュー(エクスプローラーで右クリックした時に出るやつ)にVSCodeを追加するためのレジストリー設定。zip版VSCodeのインストールでは、コンテキスト メニューにVSCodeが追加されないため、レジストリーを編集して追加する。更新不要(VSCodeへのパスはroot/VSCode/settings/installation_settings.json
から読み込むため)。root/VSCode/patch/code.ps1
: 拡張機能インストール時にVSCodeインストール先/bin/code.cmd
の代わりに使うためのPowerShellスクリプト。情シスから.cmd
ファイルや.bat
ファイルが制限されることってあるよね。root/VSCode/patch/delete_context_men.reg
: インストール時には使わない。アンインストール時に使用。
2.で準備したファイル一式をインストール対象のPCにコピーして以下を行う。
- アドミン権限のアカウントでWindowsにログイン
root/Python
フォルダーを開き、install.ps1
をPowershell(ps1実行可).lnk
にドラッグ&ドロップ1
を入力しエンター → Python本体インストール、仮想環境作成、仮想環境へのパッケージのインストール
2回目以降、パッケージの更新だけであればアドミン権限は不要。その場合、自分のアカウント(標準ユーザー)でWindowsにログインし、3.で4
を入力しエンター → 仮想環境のパッケージ更新
xlwingsのExcelアドインをインストールする場合には以下も実行(アドミン権限は不要)
- 自分のアカウント(標準ユーザー)でWindowsにログイン
root/Python
フォルダーを開き、install.ps1
をPowershell(ps1実行可).lnk
にドラッグ&ドロップ5
を入力しエンター → xlwingsのアドインがExcelにインストールされる
Pythonインストール後に作業。
- アドミン アカウントでWindowsにログイン
- VSCodeフォルダーを開き、
install.py
をPython.lnk
にドラッグ&ドロップ。 1
を入力しエンター → VSCode本体インストール、コンテキストメニュー追加、拡張機能のインストール- 自分のアカウントでWindowsにログイン
- 再度、VSCodeフォルダーを開き、
install.py
をPython.lnk
にドラッグ&ドロップ 5
を入力しエンター → 各種設定が取り込まれる
2回目以降、VSCodeおよび拡張機能の更新だけであればアドミン権限は不要。その場合、自分のアカウント(標準ユーザー)でWindowsにログインし、3.で2
~4
のいずれかを入力しエンター → VSCode本体 and/or 拡張機能の更新
- インストール後はVSCode上のPowerShellで仮想環境(
base:venv
)が有効になる。 また、コマンドActivate-Venv base
で有効にすることもできる(コマンドActivate-Venv base
はショートカットPowerShell(ps1実行可)
から起動した場合も利用可)。 - VSCode内のPowerShellで仮想環境が有効となっていない場合には、Python拡張機能が有効な状態で
Ctrl+Shift+@
を押せば、仮想環境が有効なPowershellを開くことができる。
通常どおり、Windowsの機能からアンインストール。
インストール先のフォルダーを削除。コンテキスト メニューにVSCodeはroot/VSCode/patch/delete_context_menu.reg
を実行し削除。