[Lightsail Django]No7 Bitnamiパッケージでpipを使用する際にはインストール先に注意
1から環境構築し、1からpipでライブラリをインストールする場合であれば、インストール先のディレクトリを間違うことは少ないかと思いますが、Bitnamiパッケージを使用する場合は、すでにpipでインストール済みのライブラリがあるため、追加でpipでインストールする際には、インストール先のライブラリ場所を気をつける必要があります。
pipについておさらいしつつ、django-allauthをpipでインストールを例にあげ、
整理して行きます。
1.pipについて
pipとは、Python のパッケージ管理システムで、ライブラリをインストールしたりアップデートしたりするための機能です。
2.Bitnamiではどこにインストールするかを確認する
2-1.Djangoのインストール先で判断する。
Djangoのインストール先を確認することで、Bitnamiではpipでどこにインストールされているかが判断できるかと思います。
2-2.pipでインストールされているリストを表示する
pip list
DEPRECATION: Loading egg at /opt/bitnami/python/lib/python3.11/site-packages/pip-23.3.1-py3.11.egg is deprecated. pip 23.3 will enforce this behaviour change. A possible replacement is to use pip for package installation..
Package Version
------------------ --------
asgiref 3.7.2
certifi 2024.2.2
cffi 1.16.0
charset-normalizer 3.3.2
cryptography 42.0.2
defusedxml 0.7.1
distlib 0.3.7
Django 4.2.7
django-allauth 0.61.0
filelock 3.13.1
idna 3.6
mysqlclient 1.4.6
oauthlib 3.2.2
pip 23.2.1
pip 23.3.1
platformdirs 3.11.0
psycopg2 2.9.9
pycparser 2.21
PyJWT 2.8.0
python3-openid 3.2.0
requests 2.31.0
requests-oauthlib 1.3.1
setuptools 68.2.2
sqlparse 0.4.4
urllib3 2.2.0
virtualenv 20.24.6
2-3.ライブラリの詳細を確認
ライブラリの詳細は、pip show [ライブラリ名]で確認でき、ライブラリ名は上記pip listの結果を元に指定します。
また出力結果のLocation項目がライブラリのインストール先となります。
# pip show [ライブラリ名]
pip show Django
DEPRECATION: Loading egg at /opt/bitnami/python/lib/python3.11/site-packages/pip-23.3.1-py3.11.egg is deprecated. pip 23.3 will enforce this behaviour change. A possible replacement is to use pip for package installation..
Name: Django
Version: 4.2.7
Summary: A high-level Python web framework that encourages rapid development and clean, pragmatic design.
Home-page: https://www.djangoproject.com/
Author: Django Software Foundation
Author-email: foundation@djangoproject.com
License: BSD-3-Clause
Location: /opt/bitnami/python/lib/python3.11/site-packages
Requires: asgiref, sqlparse
Required-by: django-allauth
3.ライブラリのインストール
3-1.ライブラリのディレクトリに書き込み権限を付与
インストール先のライブラリディレクトリの権限を確認し、必要に応じ権限の付与をして行きます。
# 権限を確認
ls -ltr /opt/bitnami/python/lib/python3.11/ | grep site-packages
drwxr-xr-x 27 root root 4096 Nov 15 18:13 site-packages
# 書き込み権限がないので書き込み権限を追加する
sudo chmod 777 /opt/bitnami/python/lib/python3.11/site-packages
# 権限を確認
ls -ltr /opt/bitnami/python/lib/python3.11/ | grep site-packages
drwxrwxrwx 27 root root 4096 Nov 15 18:13 site-packages
3-2.ライブラリのディレクトリについて
標準ライブラリディレクトリ
site-packagesディレクトリ
ユーザ別site-packagesディレクトリ
(pip installのオプションにより変わる)
3-3.ディレクトリを指定しdjango-allauthをインストール
pip install django-allauth -t /opt/bitnami/python/lib/python3.11/site-packages
4.インストールし直す場合
4-1.インストールディレクトリを間違えた場合
uninstallコマンドで削除する
pip uninstall django-allauth
Found existing installation: django-allauth 0.61.0
Uninstalling django-allauth-0.61.0:
Would remove:
/home/bitnami/.local/lib/python3.11/site-packages/allauth/*
/home/bitnami/.local/lib/python3.11/site-packages/django_allauth-0.61.0.dist-info/*
Proceed (Y/n)? Y
Successfully uninstalled django-allauth-0.61.0
4-2.補足
Bitnamiパッケージ環境にて、ディレクトリ指定しないでpip installした場合はhomeディレクトリにライブラリがインストールされました。
(aullauth関連のエラーがずっと出続けててかなりハマっていましたが、原因はインストール先のディレクトリが間違っていました。。)
pip show django-allauth
DEPRECATION: Loading egg at /opt/bitnami/python/lib/python3.11/site-packages/pip-23.3.1-py3.11.egg is deprecated. pip 23.3 will enforce this behaviour change. A possible replacement is to use pip for package installation..
Name: django-allauth
Version: 0.61.0
Summary: Integrated set of Django applications addressing authentication, registration, account management as well as 3rd party (social) account authentication.
Home-page: https://allauth.org
Author: Raymond Penners
Author-email: raymond.penners@intenct.nl
License: MIT
Location: /home/bitnami/.local/lib/python3.11/site-packages
Requires: Django, pyjwt, python3-openid, requests, requests-oauthlib
Required-by:
その他
その他、amazon LightsailにてDjangoを使用したWEBアプリ構築については以下となります。(こちらの記事は以下記事の続きとなります。)