ときに、インターネットに接続できない環境というのが存在します。 しかし、今回はこういう環境において Python 製のツールを使いたいという状況が発生しました。
今日びのパッケージマネージャというものはパッケージリポジトリからダウンロードするのが一般的で、Python についても多くの場合、PyPI からパッケージがダウンロード・インストールされる構成になります。
このため、べき論で言えば、オフライン環境においても内部的にパッケージリポジトリを構築し、
pip --install-url
でも使ってそのリポジトリを指定すれば良い。他の人も使えてハッピーですね。
一方、今回利用できるのはインターネット接続できない Windows 端末のみという状況ではてどうすれば良いのだという状況でしたので、かなりローテクですが以下のような内容を使いました。
- インターネットに接続できる端末で依存モジュールをダウンロード & 圧縮
$ pip download --dest modules --requirement requirements.txt $ tar czvf modules.tgz modules
requirements.txt
には以下のようにインストールしたいモジュールを記載しています。
$ cat requirements.txt javasphinx == 0.9.15 sphinx == 1.6.5
- 圧縮した依存モジュール群をオフライン端末になんとかして転送
- オフライン端末で依存モジュールをインストール
$ pip install --no-index --find-links modules --requirement requirements.txt
--no-index
でモジュールを探すときに PyPI を見に行かないようにしており、--find-links
で依存モジュールが存在している場所を示しています。