背景
オフライン環境下のマシンにパッケージ盛り盛りのPython環境を整えたのでそのメモ。
本記事ではAnacondaを使用して環境構築を行います。
ちなみに、すでにいくつかの記事でオフライン環境下で仮想環境を構築する方法や、パッケージをインストールする方法が紹介されています。
例えば、
これらの記事に従うと仮想環境の作成まではスムーズにいったのですが、パッケージのインストールで躓きました。
まず、conda install
を使う場合は、必要なソースファイル(.conda
, .tar.bz2
)を.../anaconda3/pkgs/
下から探すの面倒です。pip install
では単純に目的のソースファイル(.whl
)のみを持ってきても、うまくいかない場合があります。この原因はパッケージ間に依存関係があるためです。例えば、OpenCVを利用するにはNumPyが必要なので、OpenCVのwhlファイルのみ準備しても、インストールに失敗します。一応、エラー理由を見て、どのパッケージが足りていないかを確認し、必要なwhlファイルを準備する。これを繰り返せばオフライン環境下で所望のパッケージのインストールも可能ですが、あまりに面倒です。
本記事では、この面倒な手続きをすっ飛ばす簡単な方法を紹介します。
必要なもの
- オフライン環境下のマシン(以下、オフラインマシン)
- オフラインマシンと同じOSを搭載したオンライン環境のマシン(以下、オンラインマシン)
同じOSを用意するのはビルドされたパッケージがOSに依存している場合があるためです。また、事前に両マシンには同一バージョンのAnacondaをインストールしてください。
方法
オンラインマシンで環境構築を行い、オフラインマシンに移植(コピペ)します。
- オンラインマシン内でconda仮想環境を作成
- 必要なパッケージをインストール
- 仮想環境のフォルダごとオフラインマシンに配置
conda仮想環境の作り方などは他記事を参照ください。
所望の環境が作成したら、ターミナルでconda info -e
と叩き、仮想環境の実体がどこにあるか確認します。Macの場合デフォルトでは/opt/anaconda3/envs/{環境名}
にあるはずです。
あとはこの{環境名}
のフォルダをコピーして、オフラインマシンの.../anaconda3/envs/
下に置くだけ。
これでオンラインマシンで作成した環境をオフラインマシンで使用できます。
解説
オンラインマシンで用意した環境をオフラインマシンに移植(コピペ)しました。
間違いなどありましたらご指摘お願いします。