こちらのリポジトリの転記。
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インストーラー:
-
配布元からダウンロードし、
root/Python/installer
に配置。 -
root/Python/settings/installation_settings.json
の各値を更新。-
installer
: インストーラーのファイル名 -
venvRoot
: 仮想環境のルート フォルダーを絶対パスで指定。標準ユーザー権限で読み書きできる場所にしておくのがおすすめ。 -
venvName
: この名前の仮想環境をvenvRoot
下に作成
-
-
配布元からダウンロードし、
-
Pythonパッケージ:
- Pythonインストーラーと同じバージョンの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
関数から該当部分を削除。
-
2.2. VSCode
- 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
: インストール時には使わない。アンインストール時に使用。
-
3. セットアップの方法(被配布者向け)
2.で準備したファイル一式をインストール対象のPCにコピーして以下を行う。
3.1. Python
- アドミン権限のアカウントで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にインストールされる
3.2. VSCode
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 拡張機能の更新
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
を実行し削除。