PyCharm入門としてPyCon JP 2016公式サイトを動かす

Posted by rhoboro on 2016-10-10

今年のPyCon JP 2016に引き続き、PyCon JP 2017のスタッフに申し込みました。
個人的にはWebサイト周りの改修に積極的に関わりたいと思っています。
そこで、Djangoを利用して作られているPyCon JP 2016のWebサイトをPyCharmを使ってローカルで動かしてみました。

PyCharmとは

PyCharmJetbrainsが開発しているPython用の統合開発環境、いわゆるIDEです。
JetbrainsはJava向けIDEであるIntelliJ IDEAをベースに、いろんな言語向けのIDEを出してくれています。

ちなみにPyCon JP 2016のキーノートスピーカーのAndreyはPyCharmのコミュニティリードをしています。

Android Studioとの違い

Android開発者がみんなお世話になっているAndroid StudioもJetbrains製でしたね。 つまりPyCharmはAndroid StudioのPython版だと考えて丈夫です。実際、見た目や使い勝手はほぼ同じです。

ただ、Android Studioは無料ですが、PyCharmは無料のCommunity版と有料のProfessional版があります。 PyCharmのProfessional版で使える機能は大体こんな感じ。
(詳細はこちらにまとまっています。)

  • JavaScriptやHTML、CSSにも対応
  • DjangoやFlask、Pyramid等のWeb Framework、Google App Engineに対応
  • SSH越しのリモートデバッグやVM、Docker対応
  • DBエディター

Django用の設定については後ほど実際にプロジェクトを動かしてみます。
DBエディターは少し驚きましたが、DBと接続してDiagramを表示したり、GUIでデータの読み書きができる素晴らしい機能です。

ちなみに30日間のフリートライアルができるので、今回はProfessional版を利用していきます。

Djangoプロジェクトを動かす

さて、ここからが本題です。
DjangoのプロジェクトであるPyCon JPの公式サイトをPyCharmを使ってローカルで動かしていきます。(OSはEl Capitanです)
PyCon JP関連はほぼ全てのコードがGitHub上のパブリックリポジトリで管理されていますので、これを見て興味を持った方はぜひPRお願いします。

$ git clone https://github.com/pyconjp/pyconjp-website.git
Cloning into 'pyconjp-website'...
remote: Counting objects: 13656, done.
remote: Total 13656 (delta 0), reused 0 (delta 0), pack-reused 13656
Receiving objects: 100% (13656/13656), 18.82 MiB | 2.54 MiB/s, done.
Resolving deltas: 100% (9424/9424), done.
Checking connectivity... done.

// virtualenvがない方はpipでいれる
$ cd pyconjp-website
$ pip install virtualenv
Collecting virtualenv
  Downloading virtualenv-15.0.3-py2.py3-none-any.whl (3.5MB)
      100% |████████████████████████████████| 3.5MB 319kB/s
      Installing collected packages: virtualenv
      Successfully installed virtualenv-15.0.3
      [alpaca]~/github/pyconjp-website % source ~/.zshrc                                                                                                                                                [develop:pyconjp-website]
      [alpaca]~/github/pyconjp-website % virtualenv env                                                                                                                                                 [develop:pyconjp-website]
      New python executable in /Users/rhoboro/github/pyconjp-website/env/bin/python2.7
      Also creating executable in /Users/rhoboro/github/pyconjp-website/env/bin/python
      Installing setuptools, pip, wheel...done.

// READMEに従います
$ virtualenv env
$ . env/bin/activate
$ make dev
 -省略-
About to blow away DB - answer Y to go ahead, ^C to cancel> Y
 -省略-
Database initialized.
Hint: setup an account with: ./manage.py createsuperuser

ここから先はすべてPyCharmから作業できます!

プロジェクトを選択

  • PyCharmを起動!
  • Openからcloneしてきたディレクトリを選択

Django用の設定を行う

  • メニューの PyCharm > Preferences... を開き、Djangoの設定を行います
  • Languages & Frameworks > Django を選択
  • Enable Django Support にチェックをつける
    • Django project root にcloneしてきたディレクトリを指定
    • Settings に pyconjp/settings.py を指定
    • Manage Script に manage.py を指定
  • 最後に Apply を押す

Pythonの設定を行う

pyconjp-websiteはREADMEに記載があるようにPython2.7で動いています。
また、依存関係にあるライブラリ等もシステム全体とは別で管理するため、virtualenvを利用した仮想環境で動かします。

  • Project: pyconjp-website > Project Interpreter を選択
  • Project Interpreter で Show All を選択

  • 左下の+から Add Local を選択

  • pyconjp-website/env/bin/python2.7 を選択してOK

開発サーバーをPyCharmから起動できるように設定

  • 右上の下三角形からEdit Configurationsを選択

  • 左上の+ボタンからDjango serverを選択

  • 名前を適当にrunserverなどにしてOK

スーパーユーザーの作成

  • Tools > Run manage.py Task... からDjangoのmanage.pyを呼び出すコンソールを表示
  • 下記のようにcreatesuperuserと入力します
manage.py@pyconjp-website > createsuperuser
Username (leave blank to use 'rhoboro'):  
Email address:  rhoboro@gmail.com
Warning: Password input may be echoed.
Password:  password
Warning: Password input may be echoed.
Password (again):  password
Superuser created successfully.

Process finished with exit code 0

ここまでで設定は完了です。

実際に動かしてみる

runserverが選択されていることを確認して、再生ボタンを押してみましょう!

下記のように表示されたらきっと動いています。

http://127.0.0.1:8000 にアクセスをしてみましょう。
お疲れ様でした。うまく動いていたら下記のように表示されるはずです。

最後に

PyCharm、いかがでしょうか。 私自身もPyCon JP 2016が終わってから触り始めましたが、Android Studioに比べて初期設定が複雑な気がしています。
が、一度理解してしまえば特に難しいことはしていないので慣れてしまえば流れ作業でできます。 また、そもそもプロジェクトごとにするのでそう頻繁に行うものでもありません。

ここ数日使ってみて、PyCharmのIDEとしての出来はとても素晴らしく、最初のこの設定さえしてしまえばかなり快適に開発を進めていくことができそうな印象を持ちました。 ほぼろはトライアル期間が終了とともにProfessional版を購入します。
ってことで、投資だと思ってPyCharmをしっかり使って今年こそPython力つけていこうと決意した(笑)

あとこれを見て、pyconjp-websiteを動かした方! いろいろ触っている中でバグ見つけたらPRください。お願いします(笑)