Pythonista 3 に Django 2.0 をインストールする

過去の投稿のように、バージョンを指定してあげれば Django 2.0 も Pythonista 3 にインストールできます。ただ、詳細な原因は確認できていませんが、バージョン 2.0 しか今のところインストールできません。既に Django 1.x をインストール済みの場合は、削除する必要があります。

インストール済みの Django を削除 (StaSh を使用)

pip remove django

2.0 をインストール (2.0.1 以降は、2018/3/23 現在、Python 2.7 はサポート外というエラーで失敗します。もちろん Pythonista は最新の 3.6 でもです)

pip install django==2.0

StaSh で

pip list

としてバージョンを見ると 2.0.3 などと出ますがウソです。Console で確認しましょう。

import django
print(django.VERSION)

さて、 Django 1.x でプロジェクトを作っていた場合、manage.py に runserver --noreload を arg として渡してもエラーが出ます。おきまりの再起動と manage.py の実行を何度かすると、ForeignKeyon_delete がないというエラーになる場合があります。その場合は、エラーが出ている model.py を下の太字部分 (カンマ以降、閉じ括弧まで) を追加しましょう。

author = models.ForeignKey('auth.User', on_delete=models.PROTECT)

メジャーアップデートで色々と変更があるようですが、取り合えず Pythonista on iPhone として嬉しいのは admin ページがレスポンシブデザインになったというところが大きいと思います。楽しみましょう!

Pythonista3 に Django をインストール

iPhone や iPad 向け app Pythonista3 に Django をインストールする方法:

まず、ググって Pythonista3 に StaSh をインストールしてください。日本語の情報も見つかります。必要そうならそのうちここにも記事を書きます。

StaSh が入ったら、StaSh から以下を実行します:

$ pip install Django==1.11.6

バージョンの “1.11.6” は、その時に利用できる LTS (Long Term Support) version にしたら良いでしょう。djangoproject.com のサイトをご確認ください。(2021/06/12 追記) pip install django だけで バージョン 3.2.4 がインストールされました。バージョン指定は必要に応じてで良さそうです。

Pythonista3 を終了し、再度開きます。 <– これは Pythonista3 で何か変更を加えた際にほぼ必ず実行すべきアクションなので、期待した通りの動きをしていない時などはやってみてください。本手順でも何度も出てきます。

StaSh で Django のプロジェクトを作ります。

$ django-admin.py startproject mysite

Pythonista3 を終了し、再度開きます。

/mysite/manage.py を開きます。
Console (右ヘスワイプ) で以下を実行します。

import sys
sys.path

表示結果から、以下のような行を見つけ、コピーします (「…」の部分は、iOS 端末固有の情報です)。

/private/var/mobile/.../Documents/mysite

左にスワイプし、manage.py の編集画面に戻ります。
import sys” の下に以下を追加して、「ここに貼り付け」を上記でコピーした内容に置き換えます。(2021/06/12 追記) append の後に不要なイコール (=) が入っていたので削除しました。

sys.path.append(“ここに貼り付け”)

すると、こんな感じになります (端末によって AppGroup/…/Pythonista3 の間は異なります):

sys.path.append("/private/var/mobile/Containers/Shared/AppGroup/C1F57ABC-DDDD-EEEE-FFFF-B0B0E0B0B0E7/Pythonista3/Documents/mysite/")

Pythonista3 を終了し、再度開きます。

/mysite/manage.py を開き、実行 (右三角) ボタンを長押しして開いた画面の argument に、“runserver --noreload” を追加します。ハイフン 2つをうまく入力できない場合は、ダブルクォーテーションの内部をコピペしてください。

うまくいくと、以下のような内容が Console に表示されます。(改めて書きますが、何か想定外のエラーが発生した場合は Pythonista3 app を終了し、再度実行してください)

Performing system checks...

System check identified no issues (0 silenced).

You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
June 12, 2021 - 14:29:53
Django version 3.2.4, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

ここまできたら、http://127.0.0.1:8000/ を Safari などのウェブブラウザで開きます。

URL を長押しして Copy できる


“It Worked!” ページが表示されたら Django のインストールと初期設定は完了です。Django のチュートリアルなどを参考に、ご自身のプロジェクトやアプリケーションを作りましょう。

バージョン 3.2.4 だとこんな画面

Pythonista3 では Django への変更に対する自動更新ができない (--noreload) なので、期待通りの動作をしない場合は、Pythonista3 app の再起動をしてください。

以下は StaSh で Django をインストールした際のログです:

[~/Documents]$ pip list
[~/Documents]$ 
[~/Documents]$ 
[~/Documents]$ pip install django
Querying PyPI ... 
Error: Source distribution not available for Django: 2.0b1
[~/Documents]$ pip install Django==1.11.6
Querying PyPI ... 
Downloading package ...
Opening: https://pypi.python.org/packages/13/26/f3841e00663027ba7cf7ce7ba2cabb682a83cf0629bef013d70bebefa69d/Django-1.11.6.tar.gz
Save as: /private/var/mobile/Containers/Data/Application/20C8FA54-EEEE-FFFF-88888-3BACC5555555/tmp//Django-1.11.6.tar.gz (7874450 bytes)
   7874450  [100.00%]
Extracting archive file ...
Archive extracted.
Running setup file ...
Handling commandline script: django/bin/django-admin.py
Package installed: Django
Dependency available in Pythonista bundle : pytz
[~/Documents]$ 
[~/Documents]$ 
[~/Documents]$ which django
[~/Documents]$ pip list
Django (2.0b1) - A high-level Python Web framework that encourages rapid development and clean, pragmatic design.
[~/Documents]$