理系学生日記

おまえはいつまで学生気分なのか

インターネットに接続できないオフライン環境でPython製ツールをインストールしたい

ときに、インターネットに接続できない環境というのが存在します。 しかし、今回はこういう環境において 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 で依存モジュールが存在している場所を示しています。