Help us understand the problem. What is going on with this article?

PipenvでDjango開発環境をつくる

More than 1 year has passed since last update.

はじめに

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のインストールと動作確認

nochifuchi
勉強の備忘録として残していきます。 サウナが好きです。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした