環境設定 数値 文字列 正規表現 リスト タプル 集合 辞書 ループ 関数 クラス データクラス 時間 パス ファイル スクレイピング その他

Python3.6のvenvで仮想環境を作り、Djangoをインストールする

最終更新日 2023.02.18

この記事はCentOS7にDjangoをインストール手順をまとめています。UbuntuやMacも基本的な部分は同じです。

Djangoなどのパッケージは仮想環境でインストールします。pyenv-virtualenvはインストールしない!にあるように、仮想環境はPython3.6に付属のvenvで作ってください。

Python3.6のインストール

Python3.6をインストールしていたらこの手順はとばしてください。

CentOSの場合

sudo yum install https://centos7.iuscommunity.org/ius-release.rpm
sudo yum install python36u
sudo yum install python36u-pip
sudo yum install python36u-devel

これでPython3.6をグローバルにインストールできました。すべてのユーザーでPython3.6を使えるようになりました。Python3.6がきちんとインストールされているか、Pythonのバージョンを確認してみましょう。

python3 -V

オプションのvが大文字になっていることに注意してください。小文字にするとPythonのバージョンの詳細がたくさん出てきます。大文字にするとバージョンだけが端的に表示されます。

Python 3.6.4

仮想環境

続いて一般ユーザー(今あなたがCentOSにログインしているroot以外のユーザー)のディレクトリに移動してください。CentOSでは/home/yournameというディレクトリがユーザーディレクトリです。ログインしているユーザー名がaaaだったら/home/aaaです。

cd /home/yourname

移動しましたか?移動したら、そこで次のコマンドを打ってください。

python3 -m venv venv

venvはPython3.6に標準でついているモジュールです。他のサイトではpyenvやvirtualenvを仮想環境の構築に使っていますが、これからPythonのDjangoを開発を進めようとしている方にはvenvを強く推奨します。

↑のコマンドの結果、ユーザーディレクトリ(例えばyournameディレクトリ)の下にvenvというディレクトリが作成されます。このディレクトリは次のディレクトリやファイルを持っています。

bin  include  lib  lib64  pip-selfcheck.json  pyvenv.cfg

↑はCentOSの場合です。最近のMacでは次のようになっているでしょう。

bin         lib         pyvenv.cfg
include         pip-selfcheck.json

lib64がありません。しかしどちらもbinというディレクトリはありますね。binの中を確認します。activateというファイルが入っています。

__pycache__     django-admin        pip         python3
activate        django-admin.py     pip3            python3.6
activate.csh        easy_install        pip3.6
activate.fish       easy_install-3.6    python

それではvenvディレクトリに移動してください。今venvというディレクトリにいますか?確認したら次のコマンドを入力します。

source bin/activate

すると

(venv) $

のように左に(venv)がつきました。実際はドルマークの前にコンピューターの名前などが表示されています。(venv)があるということは、Pythonの仮想環境に入っているということです。以降Djangoなどのパッケージをインストールするときは必ず(venv)がついている状態で行ってください。

次からDjangoをインストールしますが、その前にpipが最新版になっているかチェックしましょう。

(venv) $ pip install --upgrade pip

これでpipが最新版になりました。バージョンを確認してみましょう。

pip 9.0.2 from /***/venv/lib/python3.6/site-packages (python 3.6)

仮想環境のアクティベートとディアクティベート

仮想環境に入ると(venv)がつくことがわかりました。仮想環境を脱して通常モードに戻るときはどうすればいいでしょうか?

deactivate

と入力するだけです。おそらくdeaと打っただけでdeactivateが候補として出てくるでしょう。deactivateを使うと(venv)がとれます。仮想環境から脱出することができました。

では仮想環境に再び入るときはどうすればいいでしょうか?先ほどしつこく説明したように、venvというディレクトリに入って

source bin/activate

と入力すれば、再び仮想環境モードに入ることができます。アクティベートとディアクティベートをくりかえして、仮想環境を出たり入ったりを何度かやってみましょう。自分が何をやっているか、コンピューターが何をやっているかだんだんわかってくるはずです。

Djangoのインストールになかなか入りませんね。このあたりからイライラしてくる人もいるでしょう。私がそうでした。「Djangoをインストールする」という解説を読むと、決まってこうした仮想環境の話が出てきますね。そこで「いやいや、早くDjangoをインストールしてくれよ」と思うわけですが、ここを丁寧にクリアしていかないといずれ破綻してしまうのです。

アクティベートとディアクティベートでもう一つ理解しないといけないポイントがあります。venvディレクトリでsource bin/activateを実行して仮想環境モードに入ってください。(venv)が左についていますか?

この状態で好きなディレクトリに移動してください。仮想環境ディレクトリであるvenvを離れて好きなディレクトリに移ることができますよね?これが大切なのです。

仮想環境モードにすれば、何もvenvディレクトリにとどまる必要はないのです。どんなディレクトリに移ろうが、そこで新しいパッケージをインストールすると、そのパッケージはvenvの中に入ります。

つまり仮想環境ディレクトリとプロジェクトディレクトリは切り離すことができるということです。これはPython開発者が理解しなければいけない重要なポイントです。

Djangoのインストール

いよいよDjangoをインストールします。(venv)が左についている状態になっていますか?仮想環境に入っていることを確認したら

pip install django

でインストールしましょう。これで終わりです。Djangoがきちんとインストールされているか、バージョンを確認してみましょう。まずpythonと打って、対話モードに入ってください。

python

こんな感じに対話モードになったはずです。

Python 3.6.4 (default)
[GCC 4.2.1 Compatible Apple] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

仮想環境に入っているので、pythonと入力すると仮想環境に入っているPython3.6が使われます。仮想環境を作らなかったら、デフォルトで入っているPython2系が呼ばれるでしょう。

この状態で

import django
django.VERSION

と入力してください。VERSIONは大文字です。すると

(2, 0, 3, 'final', 0)

などと表示されます。2.03というバージョンが仮想環境にインストールされたことがわかります。

Djangoはどこにインストールされたか?

Djangoが仮想環境にインストールされたことを確認します。ここはおろそかにしないできちんと行ってください。そして仮想環境という概念を正確に理解してください。

仮想環境ディレクトリvenvの中にlib64というディレクトリがありましたね。Macでは64がつかないlibです。まずはここに移動してください。中にpython3.6というディレクトリが一つだけポツンとあるはずです。

そのpython3.6ディレクトリの中にsite-packagesがあります。その中に何があるかlsで表示しましょう。

Django-2.0.3.dist-info      pip             pytz-2018.3.dist-info
__pycache__         pip-9.0.2.dist-info     setuptools
django              pkg_resources           setuptools-28.8.0.dist-info
easy_install.py         pytz

djangoがありました!これがDjangoの開発で使うパッケージです。「仮想環境にパッケージをインストールするということは、仮想環境にあるsite-packagesにパッケージを入れること」がわかったと思います。