VSCode+Pythonオフライン開発環境

今回は、インターネットに接続できない環境(オフライン環境)に、VSCode+Pythonの開発環境を構築するお話しです。

ことの始まり

私が本業で担当しているシステムは秘匿性が高いこともあって、開発・保守環境は外部インターネットができない環境(オフライン環境)に構築されています。
この環境にて、Pythonとオラクルを使ったツールを開発する必要に迫られたため、Python+VSCodeによる開発環境を構築することにしました。

作業内容

作業は以下のとおりです。

  • Python
  • Python拡張モジュール
  • VSCode
  • VSCode拡張機能

なお、実施環境はWindows10になります。

Python

Python本体を以下からダウンロードします。

https://pythonlinks.python.jp/ja/index.html

Python3.8.6を選択

今回は3.8の最終版(3.8.6)を導入します。
インストールは通常通りですので、説明は割愛します。

Pythonの拡張モジュール

次に、オラクル接続用の拡張モジュールcx_Oracleをインストールします。
cx_Oracleはオラクル社が開発している拡張モジュールで、ソースコード(C言語のようです)はGitHubにて公開されており、ドキュメントはこちらにあります。

インストールは、最初にインターネット接続できるPCにてインストール媒体(.whlファイル)をダウンロードし、その媒体を使ってオフライン環境にインストールします。
pipコマンドによるcx_Oracleのインストール媒体のダウンロードは、以下のように行います。

> pip download cx_oracle

ダウンロードされたインストール媒体をオフライン環境にコピーし、pipコマンドにてインストールします。
依存モジュールをインストールしないオプション(–no-deps)を指定します。

% pip install --no-deps cx_Oracle-8.0.1-cp38-cp38-win_amd64.whl
Collecting cx_oracle
Using legacy setup.py install for cx-oracle, since package 'wheel' is not installed.
Installing collected packages: cx-oracle
    Running setup.py install for cx-oracle ... done
Successfully installed cx-oracle-8.0.1

cx_Oracleインストールの際にpipの最新版を求められた場合は、以下のようにpipをアップグレードします。

% pip download pip
% python -m pip install pip-20.2.4-py2.py3-none-any.whl

VSCode

VSCodeは、以下のサイトから媒体をダウンロードしてインストールします。

https://code.visualstudio.com/download

VSCodeのダウンロードサイトの画面

通常のインストーラに加えてzip解凍のみの物件もあります。今回はWindowsの.zip物件(以下)を使用しました。

VSCode-win32-x64-1.51.1.zip

VSCode拡張モジュール

続いてVSCodeの拡張モジュールをインストールします。
必要な拡張モジュールは以下の3つです。

  • Japanese Language Pack for VS Code(日本語化パック)
  • Python extension for Visual Studio Code(マイクロソフト社製のPython開発環境)
  • Jupyter Extension for Visual Studio Code(開発環境のカーネル)

拡張モジュールのダウンロード

今回はオフライン環境へインストールしますので、先程のPythonと同様、拡張モジュールをファイルとしてダウンロードしてインストールします。
Python開発環境を例に拡張モジュールのインストール方法を示します。

VSCodeの拡張モジュールボタンをクリック(下図の1)し、”python”でフィルター(2)します。
モジュール一覧からマイクロソフト社製のPython開発環境を選択(3)し、マーケットプレイスへのリンク(4)をクリックします。

VSCodeの拡張モジュールの検索

表示されたマーケットプレイスの画面から”Download Extention”をクリックして拡張モジュールをダウンロードします。

マーケットプレイスから拡張モジュールをダウンロード

ダウンロードした拡張モジュールは、拡張子.vsixのファイルとなります。

MS-CEINTL.vscode-language-pack-ja-1.51.2.vsix

最後にVSCodeに戻り、拡張機能のアクションから”VSIXからのインストール…”を指定して拡張モジュールをインストールします。

VSIXからのインストール

同様の操作で日本語化パック、Jupyterをダウンロードしてインストールします。
今回ダウンロードしたファイルは以下の通りです。

  • MS-CEINTL.vscode-language-pack-ja-1.51.2.vsix
  • ms-toolsai.jupyter-2020.11.358541065.vsix

留意点

2020年11月以降のマイクロソフト社製Python拡張モジュールでは、デバッグや分析機能をJupyterと呼ばれる拡張モジュールとして分離しました。

https://forest.watch.impress.co.jp/docs/news/1289446.html

この影響で、マイクロソフト社製のPython拡張モジュールは、Jupyterがなければ動作しない状況(依存モジュール化)となっています。具体的には、Python拡張モジュールだけをインストールした状態では、Pythonのコードアシストやデバッグ実行ができません。

インターネットと接続できる環境では、Python拡張モジュールをインストールすると、自動的にJupyterも導入されますので問題は起こりません。
しかし、今回のようなオフライン開発環境の構築時には、手動でJupyterをインストールする必要がありますので注意してください。

まとめ

今回は、最悪のタイミングでオフライン環境の構築作業を行なったため、Jupyter問題が解決するまでに半日以上の時間を費やしてしまいました。
いろいろ勉強にはなったのですが、時間を返してほしい気分です。。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

nineteen − 4 =