オフライン環境にPythonのパッケージをpipで持ち込みたい - Qiita http://qiita.com/ryozi_tn/items/d08edf86dba5e7806da8
※python get-pip.py --download
が効かなかった
Python: インターネットと疎通がない環境に Python パッケージをインストールする (改) - CUBE SUGAR CONTAINER
http://blog.amedama.jp/entry/2016/06/02/223808
※python get-pip.py wheel pip --no-cache-dir --download wheelhouse
がエラーになる
どちらもうまく動かなくなっていたので試行錯誤した結果を残す。
例としてdjangoをインストールする手順をやってみる。
なお、クリーンな環境&オフライン環境のエミュレートとしてdockerコンテナを使用した。
実際の環境ではroot権限はない状態でダウンロードとインストールが可能で、/usrなどシステム領域を汚さず済む。
オンライン環境でする作業
- dockerコンテナはクリーン環境のエミュレート用。
-
-v
オプションでコンテナホストのデータ領域をコンテナに割り当てる - 一度pipコマンドをインストールしてしまう。
- /data/srcに保存しているが、実環境ではUSBメモリなどで持ち運ぶのでもちろんどこに保存しても良い
$ docker run -v `pwd`/django:/data --rm -i -t centos:centos7 /bin/bash
# useradd ym
# su - ym
// ここまではエミュレート環境用
$ cd /data
$ curl -O https://bootstrap.pypa.io/get-pip.py
$ python get-pip.py --user
$ pip download -d src pip setuptools wheel django
$ ll src/
-rw-rw-r-- 1 ym ym 6796229 Sep 17 16:00 Django-1.10.1-py2.py3-none-any.whl
-rw-rw-r-- 1 ym ym 1198961 Sep 17 15:59 pip-8.1.2-py2.py3-none-any.whl
-rw-rw-r-- 1 ym ym 465369 Sep 17 16:00 setuptools-27.2.0-py2.py3-none-any.whl
-rw-rw-r-- 1 ym ym 66878 Sep 17 16:00 wheel-0.29.0-py2.py3-none-any.whl
$ exit
# exit
オフライン環境でする作業
-
--net none
オプションをつけると外部ネットワークに一切繋がらない環境をエミュレートできる - 実環境ではUSBメモリからダウンロードしたデータをコピーして行う
$ docker run -v `pwd`/django:/data --net none --rm -i -t centos:centos7 /bin/bash
# useradd ym
# su - ym
// ここまではエミュレート環境用
$ cd /data
$ python get-pip.py --no-index --find-links src --user
$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ym/.local/bin:/home/ym/bin
$ pip -V
pip 8.1.2 from /home/ym/.local/lib/python2.7/site-packages (python 2.7)
$ pip install --no-index --find-links src --user django
$ python
Python 2.7.5 (default, Jun 24 2015, 00:41:19)
[GCC 4.8.3 20140911 (Red Hat 4.8.3-9)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> django.get_version()
'1.10.1'
-
pip install --user <package>
ユーザーの.localへインストール
参考
pip download — pip 8.1.2 documentation
http://pip.readthedocs.io/en/stable/reference/pip_download/
pip install — pip 8.1.2 documentation
http://pip.readthedocs.io/en/stable/reference/pip_install/
使用しているPythonやDjangoのバージョンを調べる - Django Tips
http://www.gesource.jp/programming/python/django/004.html