【Django】PythonAnyWhereにデプロイする

 

こんにちは。のっくんです。

 

この記事ではDjangoで作ったウェブアプリをPythonAnyWhereというクラウドにデプロイする方法を紹介します。

 

Webアプリ初心者の私が1から作ってデプロイしたアプリはこちら↓です。

 

J2のサッカー情報を発信するサイト:Soccer Talk

 

ネコ
う〜ん。まずデプロイって何?
のっくん
自分で作ったローカルのwebアプリって自分のPCからしか見れないよね。そのwebアプリをクラウドのサーバに配置することをデプロイと言うんだ。みんながアクセス出来るようになるんだよ。
ネコ
なるほど!みんなで見れるようにするわけだね。で、なんでPythonAnyWhereなの?
のっくん
デプロイ先としてはAWSやHerokuが有名だけど契約手続きが面倒だったり設定が大変だったりするんだ。その点、PythonAnyWhereは無料で設定が簡単なんだよ。
ネコ
なるほど〜。初心者には簡単な設定が一番だよね。

 

 

 

PythonAnyWhereのユーザ登録

 

PythonAnyWhereの良いところは、ユーザ登録が簡単なところです。ユーザ名とメールアドレスだけですぐに登録できます。ちなみに、無料プランだとユーザ名がサイトのドメイン名に含まれることになります。

 

私の場合は以下の通り。

ユーザ名:nokkun

ドメイン名:nokkun.pythonanywhere.com

 

https://www.pythonanywhere.com/

 

登録してログインするとこんな感じ。

 

 

無料だとディスク容量は500MBまで使えます。ちなみに、私の場合は毎月5ドルつまり500円ほど払っているのでディスク容量が1.0GBまで使えます。(まぁそんなに使っていないんですが。)

 

 

こんな感じですぐにBashが開けます。さくらインターネットやAWSのVPSだとSSH接続するまでに、パネルから申請して、公開鍵・秘密鍵作って〜、とか色々面倒なのですがこちらはその必要がありません。

 

さらに、virtualenvやgitがすでにインストールされています。なんて便利なんでしょう。

 

Githubにソースをpush

 

githubは、pythonanywhereにソースコードを一式コピーするのに使います。

 

githubを使いたくない人はdjangoのプロジェクトを一式zipにしてクラウド上でunzipしても良いです。

 

 

Githubにユーザ登録してpushするとこんな感じの画面になります。gitでクローンする時のためにURLは覚えておきましょう。

 

デプロイ

 

コンソールでの設定

 

djangoプロジェクトのソースコードを以下のコマンドでダウンロードします。hoge,fugaの部分は適宜自分のユーザ名などに変更してくださいね。

 

 

プロジェクトがダウンロードできたら、virtualenvで仮装環境を作ります。ちなみに私はローカルでAnacondaを使って開発していたのですが、pythonanywhereではvirtualenvを使う必要があります。

 

 

pythonのバージョンは自分のローカル環境に合わせて指定してください。myenvもただの名前なので何でも良いです。

 

pipでローカルで使っていたパッケージを入れます。

 

 

実はrequirements.txtを使って一気にパッケージ入れようとしたんですが、リソース使いすぎだからコンソール閉じるぞと怒られてしまったので大人しく1つずつ入れましょう。私の場合は、pandasとかを追加で入れました。

 

web上での設定

 

pythonanywhereにサインインして、Add a new web appを選択してください。

 

言われた通りにボタンを押していくとwebアプリができます。

 

 

注意点としては、Python  Web Frameworkを選択するときにDjangoではなく、Manual configulationを選択すること。(ここでDjangoを選択するとPython2系が入ってしまいます)

 

webアプリが作れたら設定画面が出てくるのでそれぞれ設定して行きます。

 

Virtualenv

 

 

myenvを指定します。

 

Code

 

WSGI Configlation fileを編集します。DJANGOの部分を以下のようにコメントアウトしましょう。

 

 

pathとsettingsの部分はご自分の環境に変更しましょう。django_app/settings.pyであれば、’django_app.settings’になります。

 

settings.py

 

以下を追加。

 

 

Bashで以下のコマンドを実行

 

 

Static files

 

staticファイルの場所を追加しましょう。

 

 

Reload

2018/10/28日追記

 

最後にリロードします。これでアプリのページがちゃんと開ければOKです。

 

 

アプリを更新したい場合には、新しいソースコードをgit cloneしてからリロードすると更新できます。リロードを忘れると更新されないことがあるので注意して下さい。

 

参考