Django
AWS
初心者
cloud9
python3

[バッドノウハウ]webプログラミング初学者がCloud9にPython3×djangoを使う

バッドノウハウというタイトルをつけましたが内容自体は使えなくもないと思います。
筆者にとって不要な手順を省略して後日記事を書き直す予定です。

この記事を書こうと思ったきっかけ

ローカルに環境を用意しなくても開発が始められるという統合開発環境(IDE)Cloud9を始めてみようと思いましたが、ネットで調べてもAWS版のcloud9がリリースされる前の情報が多く、いろいろと戸惑ったこともありましたので記事を書くことにしました。

これまでのあらすじ

Cloud9でpython3を標準で使えるまでできました。
webプログラミング初学者がAWS Cloud9でPython3を使う
webプログラミング初学者がAWS Cloud9を使い始める

pipでdjangoをインストールする→エラー

ec2-user:~/environment $ sudo pip install django
Collecting django
  Downloading Django-2.0.tar.gz (8.0MB)
    100% |████████████████████████████████| 8.0MB 140kB/s 
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-IzDxWp/django/setup.py", line 32, in <module>
        version = __import__('django').get_version()
      File "django/__init__.py", line 1, in <module>
        from django.utils.version import get_version
      File "django/utils/version.py", line 61, in <module>
        @functools.lru_cache()
    AttributeError: 'module' object has no attribute 'lru_cache'

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-IzDxWp/django/

前回python -m pip -v の結果がこうだったのでいけるかなと思ったのですが。

ec2-user:~/environment $ python -m pip -V
pip 9.0.1 from /usr/lib/python3.6/dist-packages (python 3.6)

pip3を探す

pip3のありかを確認

ec2-user:~/environment $ ls -l /usr/bin |grep pip
-rwxr-xr-x   1 root root       2804 Sep 10  2014 lesspipe.sh
lrwxrwxrwx   1 root root         21 Jan  4 02:19 pip -> /etc/alternatives/pip
-rwxr-xr-x   1 root root        370 Aug 25 18:59 pip-2.7
-rwxr-xr-x   1 root root        370 Aug 25 18:59 pip-3.6

pip3.6にリンクを張る

alternativesとかよくわからないのでとりあえず

ec2-user:~/environment $ sudo ln -s /usr/bin/pip-3.6 /usr/bin/pip3

preferenceにPYTHONPATHの項目を発見

よく見るとpreferenceのPYTHONPATHに3.6が入っていないようなので先頭に追加

PYTHONPATH
/usr/local/lib/python3.6/dist-packages:/usr/local/lib/python2.7/dist-packages:/usr/local/lib/python3.4/dist-packages:/usr/local/lib/python3.5/dist-packages

pip3でdjangoインストール

pip3でdjangoをインストール

ec2-user:~/environment $ sudo pip3 install django                                                            
Collecting django
  Downloading Django-2.0.1-py3-none-any.whl (7.1MB)
    100% |████████████████████████████████| 7.1MB 200kB/s 
Collecting pytz (from django)
  Downloading pytz-2017.3-py2.py3-none-any.whl (511kB)
    100% |████████████████████████████████| 512kB 2.5MB/s 
Installing collected packages: pytz, django
Successfully installed django-2.0.1 pytz-2017.3

インストールできた!

ここまできて

"pip3"でやるんだったら、"python3"でいいじゃん。
前回の記事、べつにいらなくね?

なのでもう一回下記の手順でやり直して記事を書き直します。

  • cloud9でenvironment作成
  • cloud9の設定でPythonバージョン、PYTHONPATH設定
  • pip3のリンク作成
  • djangoインストール