Pythonの勉強して作品を作ったけれども、公開できなくて困ってませんか。
初心者にも優しいホスティングサービスがPythonAnyWhereです。今回はPythonAnyWhereへのデプロイの方法の解説です。
PythonAnyWhereとは
PythonAnyWhereはPythonプログラミング言語に基づくオンライン統合開発環境(IDE)およびWebホスティングサービス(Platform as a service)です。
2012年に Giles Thomas氏とRobert Smithson氏によって設立され、ブラウザ内でサーバーベースのPythonおよびBash コマンドラインインターフェイスにアクセスできるほか、構文を強調表示するコードエディターも提供しています。プログラムファイルは、ユーザーのブラウザを使用してサービスとの間で転送できます。
PythonAnyWhereのポイント
- 無料で使えるので学習に使える
- 利用できるフレームワーク Django、 Flask、 Bottle、 web2py etc
- データベース MySQL も無料利用可(Postgre最低クレジットカード登録が必要)
- SSL(https://)も可能
- ダッシュボードの操作が直感的にできている。レンタルサーバー感覚でファイルのやり取りができる。また、ファイルの編集がサーバー上で簡単にできる。
- 保存可能データサイズは約 12GBだが、個別のパッケージ導入には制限がある。例えばTenserflowのインストールは途中で止まる。
ダッシュボードの主な内容
PythonAnyWhereデプロイの手順
- GitHubにデータをPush
- pythonanywhereでAPI トークンの作成
- データベースの準備
- PythonAnywhere 用のツールをダウンロード
- pa_autoconfigure_django.pyのコマンド実施
- エラーなどの対策
基本的に、4 がうまくいけばGitHubからコードをダウンロードして必要な追加のライブラリをインストールしてくれて、尚且つmanage.py migrateまで行ってくれるものです。
GitHubにデータをPush
この操作は「PythonAnyWhereの自動ツール」を使う場合は必要ないです。クローンも自動で実行してくれます。
手動で環境構築する場合は、GitHubにPushしておいたファイルやディレクトリをクローンして取得します。
GitHubを使うと何か特殊なことをおこなている気がしますが、そうではなく普通にFTP送信はセキュリティ上良くないので代わりに使っているだけです。
GitHubにPushするときは、データベース情報やトークン情報、API情報を載せたままにしないように要注意です。
pythonanywhereでAPI トークンの作成
Webアプリ作成の場合、まずこのトークンを作成しておきます。
ヘッダーメニューからaccountを選択、accountページからAPI Tokenタブを選ぶとAPI Toke設定ページです。
とりあえず、Tokenを作成しとおきます。
データベースの準備
PythonAnyWhereの管理画面からグローバルメニューから「Databases」を選択してMySQL(無料)かPostgreSQL(有料)好きな方を選びます。
ユーザー名、パスワード、新規データベース作成と設定を進めるとデータベースの設定所情報が表示されます。
PythonAnyWhereの自動ツールでデプロイと設定
pip3.6 install --user pythonanywhere
GitHubからデータをクローンしてきて、尚且つ必要なライブラリをインストールします。
うまくいけばデータベースのマイグレーションまで済みます。
pa_autoconfigure_django.py --python=3.8 https://github.com/<githubユーザー名>/<リポジトリ名>.git
やり直す場合
pa_autoconfigure_django.py --nuke --python=3.8 https://github.com/haidoro/dj_todo.git
エラーが出た時の対応
自動で設定を行なった場合は`virtualenv` の仮想環境にデプロイされています。
そのためコンソールからコマンドを実行するには`virtualenv` の仮想環境に入って作業する必要があります。
仮想環境を実行
仮想環境から出るコマンド
deactivate
再び仮想環境に新たに入るコマンド
workon <仮想環境名>
環境変数の登録
長くなるので別記事にしました。
PythonAnyWhere環境変数の設定を参考にしてください。
セキュアな通信HTTPSに対応する
HTTPSに対応するにはボタンひとつで可能です。
ダッシュボードのグローバルナビからWebを選択して、Web設定ページの中頃に「Security:」の設定があります。
そこのボタンを「Enabled」に切り替えるだけです。切り替えたら必ず最上部にある「Reload」ボタンでリロードします。
次の画像は「Security:」部分をChromeで日本語化したものです。
コメントを投稿するにはログインしてください。