0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Python/Django】よく使うコマンドのまとめ(2) <パッケージのインストール>

Last updated at Posted at 2020-12-13

背景

Python/Djangoで開発をすすめるにあたり、よく使うコマンドをまとめておきます。

先人たちの知恵をお借りするなどして解決できたことを、この場をお借りして感謝するとともに、大変恐縮ですが自分のメモとしても、こちらへまとめておきます。

環境

(本番環境)

  • AWS EC2 (Amazon Linux 2)
  • Python 3.7.9    ※2020/12/10時点のAmazon Linux2でのデフォルト
  • Django 3.1.3
  • PostgreSQL 11.5  ※同上
  • Nginx 1.12     ※同上
  • Gunicorn
  • Putty 0.74

(開発環境)

  • Windwos 10 Pro
  • Python 3.9.0
  • Django 3.1.3
  • PostgreSQL 13.1
  • Nginx 1.19.5
  • Gunicorn
  • Putty 0.74

1. パッケージソフトウェアのインストール

Pythonは「pip」コマンドを用いて、多種多様なパッケージソフトウェアをインターネット経由で簡単にインストールできます。
なお、どのようなパッケージソフトがあるかは、PyPI(The Pyhon Package Index) にて確認ができます。

Python仮想環境に入り、下記を実行します。

ターミナル
(venv_<プロジェクト名>)$ pip install django                  最新バージョンをインストールする場合
(venv_<プロジェクト名>)$ pip install django==3.1.3           指定するバージョンをインストールする場合

インストールしたパッケージのバージョンは、下記で確認できます。

ターミナル
(venv_<プロジェクト名>)$ python -m django -- version

3.1.3

他のパッケージのインストール(例)

ターミナル
(venv_<プロジェクト名>)$ pip install psycopg2-binary
(venv_<プロジェクト名>)$ pip install django-allauth
(venv_<プロジェクト名>)$ pip install pillow
(venv_<プロジェクト名>)$ pip install selenium
(venv_<プロジェクト名>)$ pip install boto django-ses
(venv_<プロジェクト名>)$ pip install gunicorn
モジュール名 説明
psycopg2-binary PostgreSQLへPythonから接続する際に用いるドライバ ※2020/12時点では、psycopg3 を開発中とのこと
django-allauth ローカルおよびソーシャル認証をサポートする認証機能パッケージ
pillow WEBアプリケーションを通してアップロードされた静的ファイルを扱う際に用いるパッケージ
selenium Live Server Test Caseクラスを使ったテスト方法で用いるパッケージ ※別途Chrome用ドライバが必要
django-ses Amazon SES(Simple Email Service)を利用する際に必要なパッケージ
gunicorn (Green Unicornの略) Pythonのwsgi(Web Server Gateway Interface)HTTPサーバー

番外編:pip自体のアップグレード

ときどき、pip自体もバージョンアップしているため、pipコマンドを実行すると『アップグレードしてね!』とお願いされます。
そのようなときは、下記を実行します。

ターミナル
$ python -m pip install --upgrade pip

2. インストール済みモジュール一覧の作成

Python開発環境にインストールしたモジュールをファイルに書き出します。
その後、その書き出したファイルを基に、本番環境へモジュールをインストールします。

2-1. インストールしたモジュール一覧をファイルに出力する。

ターミナル
(venv_<プロジェクト名>)$ pip freeze > requirements.txt
requirements.txt(例)
appdirs==1.4.4
astroid==2.4.2
beautifulsoup4==4.9.3
certifi==2020.11.8
chardet==3.0.4
colorama==0.4.4
distlib==0.3.1
filelock==3.0.12
idna==2.10
isort==5.6.4
lazy-object-proxy==1.4.3
mccabe==0.6.1
numpy==1.19.4
pandas==1.1.4
Pillow==8.0.1
pipenv==2020.11.15
pylint==2.6.0
python-dateutil==2.8.1
pytz==2020.4
requests==2.25.0
selenium==3.141.0
six==1.15.0
soupsieve==2.0.1
toml==0.10.2
urllib3==1.26.2
virtualenv==20.1.0
virtualenv-clone==0.5.4
wrapt==1.12.1

2-2. 書き出した requirements.txt を、本番運用環境のホームディレクトリへ転送する。

PuTTYや、WinSCP を用います。
※ PuTTY を利用して、Amazon EC2(Elastic Compute Cloud)へ接続する際は、「PuTTY を使用した Windows から Linux インスタンスへの接続」をご参照ください。

2-3. python仮想環境に入り、下記を実行し、インストールを実行する。

ターミナル
(venv_<プロジェクト名>)$ pip install -r requirements.txt

(関連)

【Python/Django】よく使うコマンドのまとめ(1) <仮想環境、プロジェクト、アプリケーションの作成>
【Python/Django】よく使うコマンドのまとめ(3) <PostgreSQLの操作>
【Python/Django】よく使うコマンドのまとめ(4)-前編- <本番運用:Amazon EC2 (Amazon Linux 2)>
【Python/Django】よく使うコマンドのまとめ(4)-後編- <本番運用:Amazon EC2 (Amazon Linux 2)>


(編集後記)

インストールを忘れがちなのが、意外に django-ses です。
テスト時は、コンソールにログやメール内容を出力させていることも一因ですが、アプリケーション作成を始めたばかりの頃は、マイグレーション時に、よく『django-ses が足りない!』と怒られました。
ユーザー認証を介したり問い合わせフォームを設置したりするWEBサイトやWEBアプリケーションを作成する際は、必ずと言って良いほど django-ses のお世話になるはずですので、インストールするパッケージにも意識を向けて、開発をすすめたいと思います。

0
2
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
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?