無料のPyCharm Community EditionでDjango開発

今までVisual Studio上のPTVS(Python Tools for Visual Studio)でDjango開発してたのですが、いろいろ不便になったり、マイクロソフトもやる気なさそうなので、PyCharmに移行しました。

私の場合は有料版のPyCharm使うほどでもないので、無料のPyCharm Community EditionでDjangoが開発できるよう設定しました。その方法を記録しておきます。

ちなみに、今から挑戦する人はいないと思いますが、Visual StudioPythonのWebアプリを開発するのはメリット皆無っぽいのでおすすめしません。Webではない普通のPython開発なら、Cコンパイラが必要になったりするのでアリかもしれません。

有料版と無料版の違い

有料版PyCharmはDjangoプロジェクトに対応していて、既存のDjangoプロジェクトを読み込んだり、Djangoプロジェクトを新規作成できたり、デバッグ時のプログラム起動テンプレートが用意されています。

無料版にはそういう機能がないので、開発時にはIDEを使わないDjango開発の場合と同様に、Djangoに含まれている「manage.py」等のユーティリティーを使用します。Djangoプロジェクトとは言っても普通のPythonプロジェクトなので、普通のPythonプロジェクトとしてPyCharm Community Editionで開発できます。

Djangoプロジェクトの作り方

PyCharm Community EditionでDjangoプロジェクトを作るには、まずメニューのFile -> New Project...で普通のPythonプロジェクトを作ります。 f:id:geroforce:20200920181605p:plain

Djangoのインストール

Djangoを仮想環境にインストールします。さっき作成したプロジェクトのウインドウで、File -> Settings -> Project: プロジェクト名 -> Python Interpreterを選択します。 f:id:geroforce:20200920181718p:plain 「+」ボタンをクリックすると「Available Packages」ウインドウが開くので、検索ボックスに「Django」と入力して、候補からDjangoを選択します。Specify versionをクリックしてインストールしたいDjangoのバージョンを指定して、「Install Package」ボタンをクリックします。 f:id:geroforce:20200920181750p:plain

Djangoがインストールできたか確認します。PyCharmのウインドウの下部に「Terminal」というタブがあるのでクリックしてターミナルを開きます。

python -m django --version

と入力してバージョンが表示されればインストールできています。

次のコマンドでDjangoプロジェクトのひな形を作成します。設定ディレクトリ名はakiyokoさんに倣って「config」としています。(Django では、コンフィグディレクトリの名前もプロジェクト名と同じになってしまうため、一度、config という名前でプロジェクトを作成し、その後、ディレクトリ名を変更するのがおすすめだそうです: Django入門 (チュートリアル) - とほほのWWW入門

django-admin startproject config .

以上でDjangoプロジェクトの作成は終了です。

次のコマンドでDjangoプロジェクトが動作するか確認します。

python manage.py runserver

ターミナルに次の出力が確認できるでしょう。

Performing system checks...

System check identified no issues (0 silenced).

You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, conte
nttypes, sessions.
Run 'python manage.py migrate' to apply them.
September 20, 2020 - 18:22:06
Django version 1.11.29, using settings 'config.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

ターミナルに出力されたローカルURLhttp://127.0.0.1:8000/をクリックすれば、Djangoの出力がブラウザに表示されるはずです。 f:id:geroforce:20201217051521p:plain

補足: PyCharm以外で作ったDjangoプロジェクトの読み込み方

PyCharm以外で作ったDjangoプロジェクトを読み込むには、File -> Openでプロジェクトのディレクトリを指定して「OK」ボタンを押します。

Pythonインタプリタの確認

PyCharm以外で作ったDjangoプロジェクトを読み込むと、設定が変になっていることがあります。File -> Settingsで設定画面を開いて、Project:プロジェクト名 -> Project Interpreterで、Pythonインタプリタが適切に設定されているか確認します。 f:id:geroforce:20200207151915p:plain

Python仮想環境の追加

インタプリタの設定が変になっていたら、新規にVirtualenvの仮想環境を追加するのがよいでしょう。 歯車アイコンをクリックして、Addをクリックすると、Pythonインタプリタを追加できます。今回は以下の設定で追加しました。 f:id:geroforce:20200207152157p:plain

仮想環境のPythonインタプリタが追加されました。 f:id:geroforce:20200207152358p:plain 以上で補足は終わりです。

Django実行コマンドの設定

デバッグ時に実行するコマンドを設定します。これを設定するとデバッグ時にPyCharmからDjangoサーバーを起動できるので便利です。

メニューからRun -> Edit Configurationsをクリックします。 f:id:geroforce:20200207153710p:plain

「+」ボタンをクリックすると、テンプレートの選択肢が表示されるので、「Python」を選択します。「Python」テンプレートを選択すると普通のPythonプログラムとしてのデバッグコマンドを設定できます。 f:id:geroforce:20200207153857p:plain

設定はmanage.pyに引数を与えてDjangoサーバーを起動する様な設定にすれば何でもOKです。

「Name」には適当な名前を入力します。例ではWooHooAppにしています。「runserver」とかでもいいかも

「Script path」にはmanage.pyのパスを与えます。

「Parameters」にはmanage.pyに与える引数を入力します。例では、「runserver localhost:8080」にしています。

「Environment variables」にはデバッグ時に設定したい環境変数セミコロンで区切って入力します。

私の場合デバッグ時には別の設定を使用したいことが多いので、あらかじめ「;DJANGO_SETTINGS_MODULE=WooHooApp.settings」を追加しています。DJANGO_SETTINGS_MODULEを変更することで設定モジュールを切り替えることができます。

設定が入力できたら「OK」ボタンをクリックして、メイン画面に戻ります。 f:id:geroforce:20200207160407p:plain

メニューからRun -> Debugをクリックすると、設定を選ぶダイアログが表示されるので、起動したい設定名(ここではWooHooApp)をクリックします。 f:id:geroforce:20200207160527p:plain

コンソールに出力が流れます。 f:id:geroforce:20200207155931p:plain

ターミナルに出力されたローカルURLhttp://localhost:8080/をクリックすれば、Djangoの出力がブラウザに表示されるはずです。 f:id:geroforce:20201217051521p:plain