search
LoginSignup
14
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

PipenvでDjango開発環境をつくる

はじめに

Djangoを開発するときに「pip」を使っていたのですが、「pipenv」という便利なツールがあるということで、「pipenv」を使ってDjangoの開発環境を作ってみたので備忘録として残したいと思います。

Pipenvとは

Pythonで開発するときに、プロジェクト毎のパッケージの管理や仮想環境の構築を自動で行ってくれるツールです。
pipenvが管理するPipfileを共有することで、チームで同じ開発環境を準備することができるみたいです!

Pipenv:人間のためのPython開発ワークフロー
https://pipenv-ja.readthedocs.io/ja/translate-ja/

Pipenvのインストール

pipが使える環境で以下を実行します。

$ pip install pipenv

インストールされていることを確認します。

$ pipenv --version
pipenv, version 2018.11.26

Pythonのインストール

$ pipenv --three  # Python 3をインストール
$ pipenv --two  # Python 2をインストール
$ pipenv --python 3.7.2 # バージョン指定してインストール

実行するとPipfileが作成されます。
Pipfileの中身を確認。

[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]

[requires]
python_version = "3.7"

仮想環境の構築

$ pipenv shell

#実行後
(仮想環境名) $

仮想環境から抜け出す場合。

(仮想環境名) $ exit

パッケージのインストール

パッケージをインストールする場合は以下のように実行します。

$ pipenv install パッケージ名

Djangoのインストール

$ pipenv install Django
$ pipenv install django==2.0.6 # バージョンを指定して追加

実行後PipfileとPipfile.lockが作成されます。
Pipfileの中身

[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]

[packages]
django = "*"

[requires]
python_version = "3.7"

開発環境のみにインストール

--devを指定すると開発環境だけで使用したいパッケージをインストールできます。

$ pipenv install --dev Pillow

Pipfileの中身

[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]
pillow = "*"

[packages]
django = "*"

[requires]
python_version = "3.7"

アンインストール

$ pipenv uninstall パッケージ名

脆弱性のスキャン

パッケージに既知の脆弱性が無いかチェックすることができます。

$ pipenv check

スクリプトの設定

Pipfileの[scripts]に実行スクリプトを登録することができます。
Pipfile[scripts]の下に設定していきます。

[scripts]
start = "python myproject/manage.py runserver"

スクリプトを実行します。

pipenv run start

requirements.txt生成

$ pipenv lock -r

Djangoのプロジェクト作成

仮想環境に入っている状態で以下を実行。

$ django-admin startproject プロジェクト名

Djangoアプリ作成

仮想環境に入っている状態で以下を実行。

$ cd プロジェクト名
$ django-admin startapp アプリ名

さいごに

「pipenv」を使ってDjangoの環境を作ってみましたが、パッケージで管理できることで、チームで開発する際に便利そうです。
また、パッケージの脆弱性などもチェックできることもうれしいですね!
今後「pipenv」を使って開発していきたいと思います。

参考

Pipenv:人間のためのPython開発ワークフロー
Djangoメモ(2) : Python, Pipenv, Djangoのインストールと動作確認

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
14
Help us understand the problem. What are the problem?