Python3.6のvenvで仮想環境を作り、Djangoをインストールする
この記事は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にパッケージを入れること」がわかったと思います。