(1) Pythonパッケージインストール(pip install)をオフラインで行う方法
(1-1) オフラインインストールとは?
(2) オフラインインストールの手順(要Cコンパイルのもの)
(2-1) VSのブートストラップをダウンロード
(2-2) レイアウト(キャッシュ)の作成+カスタマイズ
(2-3) ローカルキャッシュを用いてVisual Stuidoをインストール
(2-4) 目的のパッケージのインストール
(3) 用語説明
(3-1) レイアウトの作成とは?
(3-2) 「pip」とは?
(3-3) setuptoolsについて
(1) Pythonパッケージインストール(pip install)をオフラインで行う方法
(1-1) オフラインインストールとは?
まずインストールの方法が大きく分けて「オンライン」と「オフライン」の2つに分かれます。
(1-1-1) オンライン(ON)
「オンライン」はインターネットから直接インストーラを入手してインストールする方法で、イメージとしては「pip install [パッケージ名]」コマンドでインストールを行います。
(1-1-2) オフライン(OFF)
「オフライン」は何らかの事情でインターネットに接続出来ない環境での開発を行うなどの事情がある場合に、オンラインから落とした資源をオフライン環境に持って行き、インターネット接続無しで完結するようにインストールを行っていく方法です。
オフラインの場合のおおまかな流れとしては次のようになります(少し省略していますが)。
①資源のダウンロード(オンラインから)
オン(ON)の時と同じ「pip install」コマンドを使います。「-d」オプションでディレクトリを指定して任意のパスにダウンロードします。
pip install -d [ダウンロード先] --no-binary :all: [パッケージ名]
↓
②資源をオフライン環境に配備
ダウンロードした資源をオフライン環境に移し、任意のディレクトリに配備します。
↓
③インストールの実行
そのパスに移動してpip installコマンドを実行します。
ただし、一部のパッケージ(Levenshteinなど)はインストール時(pip install時)にCからのコンパイルが必要です(モジュールの中にはpipコマンドでのインストール時にコンパイルするものがあるため)。無い場合には次のようなエラーメッセージが出る事があります。
error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": https://visualstudio.microsoft.com/downloads/
CやC++からコンパイルするためには「Microsoft Build Tools」を使います(vs_buildtools_xx.exe)。通常であれば、vs-buildtools-xxx.exeを叩くとネットに繋ごうとするため、オンラインで行うにはLayoutを事前に作成する必要があります。
(2) オフラインインストールの手順(要Cコンパイルのもの)
(2-1) VSのブートストラップをダウンロード
この手順はオンライン(インターネット接続あり)で実施します。
今回は「vs_buildtools.exe」をダウンロードします。
(URL)※Visual Studio 2019の場合
https://docs.microsoft.com/ja-jp/visualstudio/install/create-an-offline-installation-of-visual-studio?view=vs-2019
(図211)
ダウンロードが出来たら、インストールするサーバの任意のパスに配備します(例ではデスクトップ)。
(図212)
(2-2) レイアウト(キャッシュ)の作成+カスタマイズ
この手順はオンライン(インターネット接続あり)で実施します(vs-buildtools-xxx.exeをそのまま叩くとネットに繋ごうとするため、オンラインで行うにはLayoutを事前に作成する必要があります)。
(コマンド)
vs_buildtools__665421103.1576898890.exe --layout [任意のパス]\buildtool\layout\ --add Microsoft.VisualStudio.workload.VCTools --add Microsoft.VisualStudio.workload.MSBuildTools --includeOptional --lang en-US
コマンドを改行してみると少し解読し易くなります。
vs_buildtools_xx.exe --layout [任意のパス]\buildtool\layout\ --add Microsoft.VisualStudio.workload.VCTools --add Microsoft.VisualStudio.workload.MSBuildTools --includeOptional --lang en-US
(コマンド説明)
①「layout」でオフラインインストールのキャッシュを指定するディレクトリを作成します。
②「add」でダウンロードしたい「ワークロード」を指定する事ができます。
③「includeOptional」は指定したワークロードIDの全ての推奨&任意コンポーネントを含めます。
④「lang」でロケールを追加しています。
(図221)
↓
(図222)
↓
(図223)
(完了メッセージ)
Download of 'https://download.visualstudio.microsoft.com/download/pr/12134536/1d4dd63878c15be36deb5e7106d37ce1/X86%20Debuggers%20And%20Tools-x86_en-us.msi' succeeded using engine 'WebClient' Layout progress: 99.00% セットアップは正常に終了しました。 続行するには何かキーを押してください...
↓
(図224)
ローカルキャッシュが作成されました。
(2-3) ローカルキャッシュを用いてVisual Stuidoをインストール
この手順はオフライン(インターネット接続なし)で実施します。
ローカルインストールキャッシュを用いてインストールする際に基本はローカルのファイルを探しに行きますが、ローカルに無いコンポーネントを選択した場合はネット上に探しに行きます。
まずは先程作成したレイアウトが置かれたフォルダに移動して次のコマンドを実行します。
vs_buildtools__665421103.1576898890.exe --add Microsoft.VisualStudio.workload.VCTools --add Microsoft.VisualStudio.workload.MSBuildTools --includeOptional --lang en-US
この時、以前にダウンロードしたファイルのみがインストールされるように、レイアウト キャッシュの作成に利用したものと同じコマンド ライン オプションを使用します。
(図231)Visual Studioインストーラが起動します
↓
(図232)インストールが進行中
↓
(図233)C++のビルドツールを選択します
↓
(図234)インストールが進行中
↓
(図235)インストール完了
(2-4) 目的のパッケージのインストール
ここまでの手順を踏んで、ようやく目的のパッケージを「pip install」でインストールします。
①パッケージのダウロード(オンラインで実施)
PyPIのページ等から「Levenshtein」のパッケージをダウンロードします。
(図241)
次に「Setuptools」のパッケージをダウンロードします。
(図242)
②サーバに配備
ダウンロードした資源をサーバ(オフライン環境)に配備します。
(図243)
③インストールの実行
「pip install」コマンドでsetuptoolsとLevenshteinをインストールします。
$ pip install setuptools-xxx-py2.py3-none-any.whl $ pip install python-Levenshtein-0.12.0.tar.gz
(図244)
(図245)
(図246)
④パッケージの疎通
インストールが完了したら簡単なLevenshteinのプログラムで動作確認します。
(図247)
(3) 用語説明
(3-1) レイアウトの作成とは?
初期インストール資源に加えて付随する全ての更新プログラムを一つのフォルダに集約する事を「レイアウトを作成する」と呼んでいます。
この機能は各クライアントバージョンが合っていなくても、同じ配置場所を利用する事でインストールを管理できるようにする目的で作られています。
ちなみにVisual Stuidoの完全なレイアウトを作ると35GB程度の容量になるため、必要な機能に絞ってレイアウトを作る事が多いと思います(レイアウトのカスタマイズ)。
(3-2) 「pip」とは?
・Pythonのパッケージ管理ツールです。Python3.4以降はPython本体に含まれているためインストールが不要になった
・サードパーティが配布しているパッケージをインストールするために使う。
・他のパッケージ管理ツールとしてeasy_installやcondaがあり、condaはAnacondaパッケージのマネージャツールである。
(3-3) setuptoolsについて
setuptoolsは「Python distutls」の改修を集めたもの+easy_install(インストール補助コマンド)を同梱したもので、Pythonの資源を構築・配布をより簡単にする事ができます。以前はdistributeパッケージと迷うところであったが、2013年はsetuptoolsに再度組み込まれたため(マージ)、現在ではsetuptoolを選択すればOK。