概要
pythonanywhereにインストールされているDjangoは4.0.6でしたが、現時点での最新バージョンは5.2ですので、今回はこれをインストールしたいと思います。
(Django 5.2はLTSです。メインストリームサポートは2025年12月まで、延長サポートは2028年4月までとなっています。)
pythonanywhereにDango 5.2をインストールするためにはvirtualenvを使用する必要がありそうなので、下記を参考にvirtualenv環境を整えていきます。
https://help.pythonanywhere.com/pages/VirtualEnvForNewerDjango/
新規WEBサイトを作成する
まずはWEBサイトを作ります。ログイン後に表示されているダッシュボードの右上にある「Web」をクリックします。

次に表示された画面で「Add a new web app」をクリックしたあと、「next」ボタンをクリックします。

続いて表示される画面で「Django」「Python 3.10 (Django 4.0.6)」の順にクリックします。
(Django5.1は、Python3.10、3.11、3.12をサポートしていますが、Python3.12が使えないのが少し残念です。 ⇒PythonAnywhereが2025年3月27日に導入した新しいシステムイメージ「innit」を使用すればPython 3.11、3.12、3.13が利用可能となりました。2025年3月25日以降にアカウントを作成したユーザーは、自動的にこの新しいシステムイメージが適用されているようです。それ以前にアカウントを作成した場合でも切り替えが可能とのことなので、これは別記事で紹介したいと思います。)


次にProject Name と Directory を入力して(今回はそのまま)、最後にNextボタンをクリックします。

これには時間がかかりますが、しばらく待つと画面が切り替わり「Configuration for tomomori.pythonanywhere.com」などと表示されれば、サイトが作られました。
この時点で tomomori.pythonanywhere.com にアクセスすればDjangoのロケット画面が表示されるはずです。Djangoのバージョンは4.0と表示されています。

仮想環境を作成する
ここからは下記を参考にvirtualenvで仮想環境を整えていきます。
https://help.pythonanywhere.com/pages/VirtualEnvForNewerDjango/
まずはDashboadに戻りBashを起動します。

Bashの画面が表示されたら「 mkvirtualenv –python=python3.10 myproject 」とコマンドを実行し仮想環境を作成します。
プロンプトが「(myproject) 06:41 ~ $」のようになれば成功です。
もし「mkvirtualenv: command not found
」のようなエラーが表示された場合は下記を参考に、.bashrcファイルを編集したあと、virtualenvwrapper.shを実行します。https://help.pythonanywhere.com/pages/InstallingVirtualenvWrapper
また、仮想環境を抜けるには「deactivate」、もう一度仮想環境に入るのは「 source .virtualenvs/myproject/bin/activate」を実行します。
仮想環境に入れたら、続いて下記コマンドでDjangoをインストールします。
( myproject ) 14:51 ~ $ pip install django
これで最新のDjangoがインストールされます。今回は下記のようにDjango 5.2.1がインストールされました。(特定のバージョンを指定する場合は「pip install Django==5.2.1」のようにします。)

Virtualenvを使ってサイトを表示する
次に、「tomomori.pythonanywhere.com」を開いたときに、いま作成した仮想環境が使われるように結び付けます。
ダッシュボードに戻って「Web」をクリックします。

表示された画面を少し下までスクロールし「Virtualenv」にある、「Enter path to a virtualenv, if desired」設定ファイルを編集するために、表示された画面の「WSGI configuretion file」のリンクをクリックします。

そして表示されたテキストボックスに「myproject」と入力してから、確定ボタン(右側のレ点)をクリックして確定させると、自動的にフルパスに変更されます。
フルパスに変わったのを確認後、画面上部に戻りリロードボタンをクリックします。

これで tomomori.pythonanywhere.com にアクセスすれば Django 5.2 のサイトが表示されます。

adminサイトのCSSを更新する
管理サイト( /admin )にアクセスしてみてください。おそらく、下記のように画面が崩れているはずです。

これは、管理サイトのCSSが古いままなのが原因と思われますので、下記コマンドでCSSを更新してください。
(myproject) 09:30 ~ $ cd ~/mysite
(myproject) 09:30 ~/mysite $ python manage.py collectstatic
これで正しく表示されるはずです。

adminサイトにログインする
次に、管理サイトにログインしてみます。
もし、仮想環境になっていなければ、下記コマンドで仮想環境に入ります。
source ~/.virtualenvs/myproject/bin/activate
そして、mysiteディレクトリに移動し、migrateを実行します。
(myproject) 09:39 ~/mysite $ cd ~/mysite
(myproject) 09:40 ~/mysite $ python manage.py migrate

これで(SQLiteに)テーブルが作成されたので、下記コマンドでスーパーユーザを作成します。
ユーザ名、パスワードとも大文字小文字を区別しますので注意してください。
(myproject) 09:40 ~/mysite $ python manage.py createsuperuser
管理画面( /admin )にアクセスして、上で作成したユーザ名、パスワードでログインすると、下記のような画面が表示されます。これでデータの編集が可能になりました。

まとめ
以上、PythonAnywhereでvirtualenvを使って最新のDjangoサイトを作成する方法をご紹介しました。
PythonAnywhereが2025年3月27日に導入した新しいシステムイメージ「innit」を使用すればPython 3.11、3.12、3.13が利用可能になったようですので、次は「innit」を試してみたいと思います。
コメント