- 目的
- オープンなネットワークへのアクセスを許容していない社内ネットワーク環境のような、クローズドな環境下にある社内サーバ・PCに対して、Anaconda仮想環境を構築するお話です。オンライン環境下であれば単純なインストールコマンドやyamlファイルからのcreateで構築可能ですが、オフライン環境下にある場合においても使い慣れたAnacondaを使って仮想環境を構築したい場合のtipsになります。
- 環境前提
- ・対象のサーバ・PCにはAnacondaが導入されている
・USBメモリ・DVD等メディアや社内ネットワーク経由でサーバ・PCへのファイル転送はできる
・外部インターネットに接続可能なPCが別途ある - 試したオフラインPCのスペック
- ・Windows 10 Pro 1709
・conda 4.5.0
事前準備
オフライン環境下で仮想環境を構築するにあたり、インストールしたいパッケージファイルが必要になります。まずはオンライン環境下にあるPCで、同様の仮想環境を構築し、依存関係も考慮した必要なパッケージのリストやパッケージファイルそのものを入手します。
conda create -n [新しい仮想環境の名前] py=3.X.X
conda install [必要なパッケージを指定]
conda list でインストールされたパッケージのリストが確認できます
anacondaフォルダの pkgs フォルダ内にインストールしたパッケージ(tar.bz2などで圧縮されたもの)が格納されています。他の仮想環境構築時に取得されたパッケージファイルもあるので、作成日時やリストと照らし合わせて必要なパッケージをピックアップします。
それらパッケージをオフライン環境下にあるPCに、USBメモリやネットワーク経由で転送できれば、
事前準備は完了です。
オフライン環境下での仮想環境の構築
1. 仮想環境の作成
conda create -n new_env --offline
ここでは new_env という名前で作成しました。既存する仮想環境を複製しパッケージを追加する手法もできないかと思い clone を試したものの、オンライン環境が必要なのか通信エラーで上手くいきませんでした。
※ 実行エラーとなったコマンド例 conda create -n new_env --clone [既存環境の指定] conda create -n new_env --clone [既存環境の指定] --offline
2. 仮想環境が作成されたことを確認
conda env list
新たに作成した new_env がリストにあれば◎
3. 仮想環境 new_envをアクティブに
activate new_env
アクティブのやり方は環境に合わせて実施ください
source activate new_env conda activate new_env
4. new_env環境にあるインストール済みパッケージの確認
conda list
と、やってみるとこの段階ではパッケージが1つもない空の状態でした。
試しに 「python」とコマンドを叩いてみると起動しますが、これは「base」環境のpythonが呼び出されているだけのようです。
5. Pythonのインストール
ここから事前に準備したパッケージファイルを使い、インストールしていきます。
まずは Python をインストール
cd [パッケージファイルを集めたフォルダ]
conda install python-3.X.X-XXXXXX.tar.bz2
6. その他パッケージのインストール
以降、ものぐさな私は下記コマンドでとりあえず一括インストールしています。
このやり方で特に問題は発生していませんが、厳密に検証したこともないので
ここは各々のご判断で。jupyter notebookとかはこの一括インストールで問題なく動いてくれています。
for /f %i in ('dir /A-d /B *.tar.bz2') do conda install %i
↑ dirコマンドで取得した .tar.bz2 のファイル一覧 を1行ずつ conda install の引数に指定するwindowsのコマンドです。Linuxでいう xargs みたいなものです
7. インストールされたパッケージの確認
conda list で確認してみると、インストールされたパッケージがずらっと表示されるはずです。
必要なパッケージが正しくインストールされていることを確認したら、
オフライン環境での仮想環境構築はこれにて完了です。