はじめに
2019/12/2にDjango3.0が正式リリースされた。
Pythonのサポート対象が3.6、3.7、3.8となり、色々とアップデートがあったみたい。
なので触ってみようと思うが、その前にインストール手順について書いていきたい。
せっかくなのでPython3.7を入れようとしたが思ったより苦戦したので備忘録として。。。
Python3.7のインストール
なにはともあれPythonのインストールを行う。
環境はCentOS7、yum updateをしたのみのサーバである。
まずPythonインストールにあたり必要な小物たちをインストールする。
[root@django ~]# yum install gcc zlib-devel libffi-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel libuuid-devel xz-devel
python3.6はyumでインストール可能だが今現在(2019/12/10)だと3.7はリポジトリに入っていないみたいなので、パッケージを落としてきてインストールする必要がある。
[root@django ~]# curl -O https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
[root@django ~]tar xf Python-3.7.3.tgz
[root@django ~]cd Python-3.7.3
[root@django Python-3.7.3]./configure
[root@django Python-3.7.3]make
[root@django Python-3.7.3]make altinstall
インストールが終わったら実行PATHの追加を行う。
[root@django Python-3.7.3]visudo
・・・・
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
・・・・
## 最後の:/usr/local/binを追記している
これで設定が終わったはずなのでバージョン確認を行う。
[root@django ~]python3 -V
-bash: python3: コマンドが見つかりません
F〇〇K
Python3.6だとデフォで出来たはずだが今回のようなインストールの形だと自分でいじらないといけないみたいだ。
python3で起動するようシンボリックリンクの設定をを行う。
[root@django Python-3.7.3]# which python3.7
/usr/local/bin/python3.7
[root@django Python-3.7.3]# ln -s /usr/local/bin/python3.7 /usr/bin/python3
[root@django Python-3.7.3]# python3 --version
Python 3.7.3
yeah
ついでにpipのバージョン確認も行おう。
[root@django ~]pip3 -V
-bash: pip3: コマンドが見つかりません
[root@django ~]pip -V
-bash: pip: コマンドが見つかりません
Jesus Christ
お前もか・・・調査して手動でいれることにする。
[root@django ~]curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
[root@django ~]python3 get-pip,py
[root@django ~]pip3 -V
pip 19.3.1 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
今回は↑のような対応をしたが設定をいじるだけでもいけるらしい。
いまさらながら、Python3.7をCentOS/RHEL 7に導入する。
Django3.0のインストール
では最後にDjango3.0をインストールする。
[root@django ~]pip3 install Django
・・・
Successfully installed Django-3.0 asgiref-3.2.3 pytz-2019.3 sqlparse-0.3.0
[root@django ~]
おけまる
無事インストールできた。
次へ向けて
pythonの対応バージョンが変わったのでじゃあ入れたことのない3.7を入れようとしたら思ったより時間がかかってしまった。おそらく3.8も似たような対応になると思われる。
次の記事でDjango3.0を実際に触ってみようと思う。