コミュニティ

pythonパッケージを一般ユーザーでローカル環境にインストールする方法

この記事は最終更新日から3年以上が経過しています。

管理者権限(root)はないけど、ローカル環境にpythonのパッケージをインストールする。

以下の素環境で確認した。

$ docker run  --rm -i -t docker.io/centos:7.3.1611 /bin/bash
//pythonは入っているが、pipコマンドはない。
$ python -V
Python 2.7.5
$ pip
-bash: pip: command not found

// まずはpipコマンドを準備する
$ curl -O https://bootstrap.pypa.io/get-pip.py
$ python get-pip.py --user

// 上記コマンドを実行すると、.localにインストール+パスが追加される
$ ll ~/.local/bin/pip
-rwxrwxr-x 1 ymko ymko 201 Jul 15 03:58 /home/ymko/.local/bin/pip
$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ymko/.local/bin:/home/ymko/bin

// ログオフすると消えるので追加しておく
$ echo "export PATH=$HOME/.local/bin:\$PATH" >> ~/.bashrc

// そのままインストールしようとするとシステム領域で書き込めないエラー
$ pip install bottle
IOError: [Errno 13] Permission denied: '/usr/lib/python2.7/site-packages/bottle.pyc'

// --userで自分のローカルにインストールする
$ pip install bottle --user
Collecting bottle
Installing collected packages: bottle
Successfully installed bottle-0.12.13

// モジュール検索パスにも.localのものが含まれている
$ python
Python 2.7.5 (default, Nov  6 2016, 00:28:07)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print(sys.path)
['', '/usr/lib64/python27.zip', '/usr/lib64/python2.7', '/usr/lib64/python2.7/plat-linux2', '/usr/lib64/python2.7/lib-tk', '/usr/lib64/python2.7/lib-old', '/usr/lib64/python2.7/lib-dynload', '/home/ymko/.local/lib/python2.7/site-packages', '/usr/lib64/python2.7/site-packages', '/usr/lib/python2.7/site-packages']

毎回面倒なのでスクリプトにした

pip_user_install.sh
#!/bin/bash

curl -O https://bootstrap.pypa.io/get-pip.py
python get-pip.py --user
grep .local/bin ~/.bashrc
if [ $? != 0 ]; then
    echo "export PATH=$HOME/.local/bin:\$PATH" >> ~/.bashrc
fi

こちらも参考に

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

ユーザー登録して、Qiitaをもっと便利に使ってみませんか。
  1. あなたにマッチした記事をお届けします
    ユーザーやタグをフォローすることで、あなたが興味を持つ技術分野の情報をまとめてキャッチアップできます
  2. 便利な情報をあとで効率的に読み返せます
    気に入った記事を「ストック」することで、あとからすぐに検索できます
ユーザーは見つかりませんでした