LoginSignup
12
15

More than 5 years have passed since last update.

オフライン環境にpythonパッケージをインストールする

Last updated at Posted at 2016-09-17

オフライン環境に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

12
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
15