akiyoko です。
この記事では、私が執筆した Django の同人誌「現場で使える 基礎 Django」で説明しきれなかった部分の加筆・補足をしています。まだ本を読んでいない方にも読める記事になっていますので、ご安心を。
補講その2として今回は、「無料版 PyCharm で Django 開発環境を構築するまでの手順」 について取り上げます。
記事の前半で「PyCharm」の概要や利点、「Professional 版」と「Community 版」(「CE」と略されます)のエディションの違い、Professinal 版のライセンスと料金体系を説明し、後半で無料版の「PyCharm CE」を使って Django の開発環境を構築するまでの手順を解説します。
同人誌を購入済みの方のために補足すると、技術書典4 で頒布したバージョン(v1.0.0)の「付録A:macOS の Python 3 環境構築の方法」や 6月以降に再販したバージョン(v1.0.1)の「付録A:macOS における Django 開発環境の構築手順」とは若干手順が異なっていますので、すでにお読みの方はご注意ください。改訂箇所は以下の通りです。
- (使う必然性がなかったので)Anaconda を使わないように改訂(v1.0.1)
- 初心者でも簡単に環境構築できるように PyCharm CE を使うやり方に改訂(v1.0.1)
- 説明を簡便にするために、Python をインストールするまでの手順を省略(本記事)
- インストールする Python のバージョンを 3.5.2 → 3.6.5 に変更(本記事)
本ブログ記事では長々と書いていますが、同人誌ではスッキリと書いていますのでご安心ください。
《CMコーナー》
「現場で使える 基礎 Django」は現在、増刷して絶賛発売中です! 完売しました!
booth.pm
《2018/8/17 追記》
BOOTH で販売していた技術書典4バージョンの「現場で使える 基礎 Django」(紙の本)はおかげさまで完売いたしました。そしてこのたび、36ページの加筆(本文144⇒180ページ)、Django 2.1 対応などの改訂をおこなった「現場で使える Django の教科書《基礎編》」を Kindle Direct Publishing で出版することになりました。電子版と紙の本を予定しています。
PyCharm とは
「PyCharm」は「統合開発環境」(IDE)と呼ばれる開発ツールで、Python で開発をする際にいろいろと便利な機能を利用することができます。 仕事の現場でメモ帳を使って開発するとあまりにも非効率なので、このようなツールが一般的に使われています。
JetBrains 社の IDE では Java 向けの「IntelliJ IDEA」や、PHP 向けの「PhpStorm」が有名ですが、Python 向けの IDE が「PyCharm」という位置付けになっています。私は、Python 開発にはもっぱらこの「PyCharm」を愛用しています。
メリットとデメリット
私が Python の開発に PyCharm を使う理由は、以下の点が気に入っているからです。
- コードジャンプ機能と自動整形機能を使うことで開発効率が著しく向上する
- インストールしたそのままの状態で快適に使える
その他にも以下のようなメリットがあり、Python があまり得意でない方にも便利に使うことができるのも魅力です。
- 「venv」(仮想環境を作成するためのモジュール)や「pip」(パッケージ管理ツール)のコマンドの使い方が分からなくても、PyCharm の画面からポチポチと操作できる
- Windows 版も Mac 版もだいたい同じ操作性や見た目になるのでナレッジが共有しやすい
現時点でのデメリットとしては、例えば以下のものが挙げられるかと思います。
- 一部機能が有料の Professional 版でないと使えない(後述します)
- 現時点で Pipenv に未対応 *1
- conda を使っている場合に PyCharm の画面からパッケージがインストールできない不具合がある(?)
PyCharm 関連でよく話題に上がるのが、エディションとライセンス、そして料金体系です。
エディション(Professional 版と Community 版の違い)
PyCharm には有料の「Professional」版と無料の「Community」版(CE)とがあり、Community 版では一部機能が使えないといった制限があります。
機能の比較表が以下になります。 *2
(Features - PyCharm より引用)
この中で私が考える Professional 版のメリットはズバリ、以下の三点です。
- ファイルの同期とリモートデバッグ(Remote development capabilities)
- データベースのサポート(Database & SQL support)
- Django などの各種フレームワークのサポート(Python web frameworks)
まず、「ファイルの同期とリモートデバッグ」は、私が Professonal 版を選んでいる一番大きな理由です。ファイルの同期とはその名の通り、Vagrant や AWS の外部サーバに SFTP 等で自動的にファイルを同期してくれる機能で、実サーバで動作検証する際に非常に便利に使うことができます。リモートデバッグとは、サーバで動作させている Django のプロセスをブレークポイントで止めて IDE 内でステップ実行できる便利機能です。pdb を使ってコンソールでデバッガを使うのと比較して、見慣れた環境でデバッグできるのため効率が劇的に上がります。
二点目の「データベースサポート」は、IDE 内でデータベースのレコードを表形式で表示したり、表のセルを更新することでレコードを直感的に変更できたりと、データベースの操作を IDE 内で統合的に使えるようにしてくれる機能です。
SQLite については良さげなクライアントツールがないので個人的にこの機能は重宝していますが、例えば MySQL であれば Sequel Pro、PostgreSQL であれば「PSequel」などのクラアンとツールがあれば特に必要ないとは思います。あと、ER図の作成機能があるので、プロジェクトによってはニーズはあると思います。
最後の「Django などの各種フレームワークのサポート」ですが、例えば Django の場合であれば、テンプレートエンジンに合わせたシンタックスのハイライトや、ファイルに合わせたコード補完をサポートしてくれます。これらの機能はあればもちろん便利なのですが、私の感覚では必要不可欠とまでは言えないように感じています。詳しい情報は「Full-stack Web Development - Features | PyCharm」を参考にしてください。
ちなみに後述する通り、 学生は無料で Professional が使える ので、問答無用で Professional 版を利用すればよいと思います。
ライセンスと料金体系
以降で、Professional 版のライセンスについて説明します。
2017年以降はそれまであった「永久ライセンス」は無くなり、「サブスクリプションライセンス」方式になりました。PyCharm のサブスクリプションは、継続年数によって値段が異なるので少しややこしいです。また、基本は年払いですが、初年度に限り月払い(継続課金)も可能です。 *3
ライセンスは、PC1台ごとではなく、ユーザー1人ごとの料金になっています。ライセンスが1つあれば複数マシンで(別のOSでも可)利用できる のは嬉しい限りです。ただし、同一のユーザーが使うという前提でなければいけません。 *4
次に、コマーシャルライセンスとパーソナルライセンスの違いについて説明します。両者に機能的な差はありません。目的(開発するものが企業の製品・サービスなのか否か)によって、そのライセンスが異なります。パーソナルライセンスは、個人用に使うため(企業ではなく自分のお金で自分のために使う)のものですが、商用サービスの開発にも使えるとのことです。 *5 企業の業務内で利用する場合はコマーシャルライセンスを使いましょう、とのこと。 *6
そして気になる料金体系はこちら。
正確な値段については、公式サイトを適宜ご確認ください。
【パーソナル(個人)ライセンス】 *7
継続年数 | 料金(年額) |
---|---|
1年目 | 10,300 円 /年 |
2年目 | 8,200 円 /年 |
3年目以降 | 6,200 円 /年 |
【コマーシャル(企業)ライセンス】 *8
継続年数 | 料金(年額) |
---|---|
1年目 | 22,900 円 /年 |
2年目 | 18,300 円 /年 |
3年目以降 | 13,700 円 /年 |
また、大学のメールアドレスなど何らかの証明が必要となりますが、学生であれば無料で Professional 版が利用できます(PyCharm だけでなく JetBrains 社の全製品が無料になります)。 *9
私は個人的に有料の Professional版を利用していますが、以降で説明する内容は無料の Community 版でも問題なく動作させることができますのでご安心ください。
Django 開発環境を PyCharm CE で構築するまでの手順
手順の解説
今回の手順について、全体像となぜそのようにするのかを Q&A形式で説明します。
まず、全体像はこちらになります。
1.Python 3 をインストール
Q.Python 3 のバージョンは何を選べばよい?
A.3.5 系でも 3.6 系でも Django 2.2 を使う上では特に問題ないと思いますが、3.7 系の最新安定版(現時点の最新版は「3.7.5」)を選ぶのがよいです。Python のバージョンの違いについては以下を参考にしてください。
(参考)
Q.Python 3 はどうやってインストールすればよい?
A.Python 公式サイト からダウンロードしてインストールするのが一番簡単です。macOS の場合は、Python のバージョンが簡単に切り替えられるように Pyenv というツールを使ってインストールすることをオススメしますが、やや手順が面倒になります。『現場で使える Django の教科書《基礎編》』の付録では Pyenv を使ってインストールする手順についても説明しています。
Q.venv とは?
A.仮想環境作成モジュールです。Python 3.3 以降では「venv」が標準で付属しており、Python 3.5 以降は仮想環境を作成するのに(「virtualenv」や「pyvenv」ではなく)「venv」が推奨されています。 *10
Q.pip とは?
A.Django などの Python パッケージをインストール・アンインストールするためのパッケージ管理ツールです。Python 3.4 以降では「pip」が標準で付属しています。 *11
2.PyCharm をインストール
Q.なぜ PyCharm を使うの?
A.開発しやすいのが一番の理由です。そのほか、「venv」(仮想環境を作成するためのモジュール)や「pip」(パッケージ管理ツール)に詳しくなくても PyCharm の画面をポチポチ操作するだけで仮想環境を作れたり、ライブラリをインストールしたりできるので、初心者にも優しいツールになっています。
Q.初期設定は?
A.PyCharm は「out of the box(箱から取り出してすぐに使える、難しい設定などは一切なしで使える)」というのが大きな魅力のひとつですので、インストール直後の状態でほとんどそのまま使えます。より開発しやすくするための最低限の設定については、拙ブログの過去記事「 PyCharm のオレオレ最強設定 - akiyoko blog」を参考にしてください。
3.PyCharm プロジェクトを作成
Q.PyCharm プロジェクトを作成するときに何を指定すればよい?
A.ワークスペースのディレクトリのパス、仮想環境のディレクトリのパス、Python のベースインタープリタのパスを指定します。ワークスペース以外はプロジェクト作成後でも指定できますが、プロジェクト作成時に済ませておくことをオススメします。
Q.ワークスペースのディレクトリは何を設定すればよい?
A.私はデフォルトのディレクトリを使っています。macOS であれば「~/PycharmProjects/」がデフォルトのワークスペースを配置する場所になります。
Q.仮想環境のディレクトリのパスは何を設定すればよい?
A.デフォルトのまま、プロジェクトが作成されるディレクトリ直下に「venv」という名前のディレクトリを作ればよいでしょう。
Q.Python インタープリタのパスは何を設定すればよい?
A.macOS であれば「which python3」で表示されるパス (*12)、Windows であれば「where python」で表示されるパスを指定します。
Q.Django をローカルPC にインストールするのはなぜ?
A.以下の理由があります。
- Django に同梱されている django-admin.py(Django 管理コマンドユーティリティ)でプロジェクトのひな形を作るため
- プロジェクトのひな形作成時に生成される manage.py(プロジェクト管理コマンドユーティリティ)でアプリケーションのひな形を作るため
- PyCharm 上で Django モジュールへのコードジャンプができるようにするため
以降で、無料版 PyCharm で Django 開発環境を構築するまでの手順を実際に進めていきます。なお、私の環境は macOS 10.13(High Sierra)でそれを前提に進めていきますが、Windows 環境でも問題なく進められると思います。
1.Python 3 をインストール
Python 公式サイト から Python 3 をインストールします。
なお、macOS にはデフォルト状態では Python 2.7 が入っています。Windows 10 の場合は Python はインストールされていないと思います。
https://www.python.org/downloads/ から、インストーラをダウンロードします。
インストーラをダブルクリックしてインストールします。
macOS の場合は自動的に PATH に指定されますが、Windows の場合はインストーラ実行時に「Add Python 3.6 to PATH」をクリックして PATH に追加します。
今回の場合では、macOS では「python3」として実行できるようになります(Windows の場合は「python」)。
(macOS 10.13 の場合)
$ python3 --version Python 3.6.5 $ which python3 /Library/Frameworks/Python.framework/Versions/3.6/bin/python3
(Windows 10 の場合)
> python --version Python 3.6.5 > where python C:\Users\akiyoko\AppData\Local\Programs\Python\Python36-32\python.exe
2.PyCharm CE をインストール
https://www.jetbrains.com/pycharm/download/ から、Community 版である「PyCharm CE」のインストーラをダウンロードします。
インストーラをダブルクリックしてインストールを完了させます。
PyCharm CE を起動すると、いくつか初回設定を選択する画面になりますが、こちらは自分のスタイルに合わせて適宜選択します(後で変更し直すこともできます)。
なお、最初に出てくるキーマップ(keymap scheme)は、以前から使っているユーザーであれば「Mac OS X 10.5+ keymap」がよいかと思います。PyCharm 公式ショートカット一覧(Windows版 / Mac版)も非常に役立ちます。
3.PyCharm プロジェクトを作成
PyCharm プロジェクトを作成するには、PyCharm 起動後に「Create New Project」をクリックします。
次の内容を入力してプロジェクトを新規作成します。
この際、「Virtualenv」を指定することで、プロジェクトごとに仮想環境が作成されます(仮想環境のディレクトリ名は「venv」としています)。 *13
項目 | 設定値 |
---|---|
Location: | 「/Users/akiyoko/PycharmProjects/mysite」 |
New environment using: | 「Virtualenv」 |
Location: | 「/Users/akiyoko/PycharmProjects/mysite/venv」 |
Base interpreter: | 「/Library/Frameworks/Python.framework/Versions/3.6/bin/python3」(「which python3」の実行結果をコピー&ペースト (*14)) |
PyCharm プロジェクトが作成されました。
「Preferences」(⌘ + ,)から「Project Interpreter」を開き、下部の「+」ボタンをクリックして、Python パッケージをインストールする画面を開きます。
例えば、「Django」を検索して、現時点の 2系の最新版である「2.0.6」をインストールします。
依存パッケージを含めてインストールが完了しました。
次に、左下のアイコンをマウスオーバーして「Terminal」を選択すると、仮想環境がアクティベートされたターミナルが起動します。
アクティベートされない場合は、「Preferences」から[Tool]>[Terminal]>[Activate virtualenv]にチェックが入っているかを確認してみてください。
それでもダメな場合は、仕方なく以下のコマンドを実行します。
$ source venv/bin/activate
最後に、ターミナル上で次のコマンドを実行して、Django プロジェクトのひな形を作成します。設定ディレクトリ名は拙書に倣って「config」としています。
(venv) $ django-admin.py startproject config .
これで PyCharm で Django を開発する環境が整いました。
最後に
最後に一番大事な話。
4月に「技術書典4」で販売して即完売した「現場で使える 基礎 Django」が、現在増刷して絶賛発売中です!完売しました!
無償の PyCharm CE を利用すれば、仮想環境を作成するための「venv」やパッケージ管理ツールの「pip」のことがよく分からなくても、Python 開発のためのプロジェクトを簡単に作成することができます。今回紹介した手順に従えば、Django の開発環境もラクラクと構築することができると思います。これで安心して Django の開発に取り組めますよね。あとはこの本を読んで勉強するだけですよね。
この本は B5サイズ・148ページの 本格的な Django 解説書 ですが、Django を仕事の現場で6年ほど使っている私が 「現場でこんな本があったらなぁ」という想いで書いたので、仕事で使っているあなたにぴったりな本 に仕上がっているはずです。
そしてこの本は特に、
- Django の日本語書籍が無くて困っている方
- Django で一度挫折したことがある方
に絶対オススメの一冊となっています。
過去記事で読みどころの解説や読者の方々の評価を紹介していますので、気になる方はこちらも合わせてご覧ください。
《過去記事》
akiyoko.hatenablog.jp
宣伝
Django の技術同人誌をこれまでに4冊出しました。開発のお供にどうぞ。
現場で使える Django の教科書《基礎編》
「現場で使える Django の教科書」シリーズ第1弾となる Django の技術同人誌。Django を現場で使うための基礎知識やベストプラクティスについて、初心者・初級者向けに解説した本です。B5・本文180ページ。
★ Amazon(電子版/ペーパー版)
★ BOOTH(ペーパー版)
現場で使える Django の教科書《実践編》
《基礎編》の続編にあたる「現場で使える Django の教科書」シリーズの第2弾。認証まわり、ファイルアップロード、ユニットテスト、デプロイ、セキュリティ、高速化など、さらに実践的な内容に踏み込んでいます。現場で Django を本格的に活用したい、あるいはすでに活用している方にピッタリの一冊。B5・本文180ページ。
★ Amazon(電子版)
★ BOOTH(ペーパー版)
現場で使える Django REST Framework の教科書
Django で REST API を構築する際の鉄板ライブラリである「Django REST Framework」(通称「DRF」)にフォーカスした、「現場で使える Django の教科書」シリーズの第3弾。B5・本文204ページ。
★ Amazon(電子版)
★ BOOTH(ペーパー版)
現場で使える Django 管理サイトのつくり方
Django の管理サイト(Django Admin)だけに特化した、ニッチでオンリーワンな一冊。管理サイトをカスタマイズする前に絶対に読んでほしい本です。B5・本文152ページ。
★ Amazon(電子版)
★ BOOTH(ペーパー版)
*1:https://youtrack.jetbrains.com/issue/PY-26492 によると「In Progress」となっています。
*2:Professional vs. Community - Compare Editions | PyCharm にも比較表があります。
*3:If I choose a monthly subscription, do I have to place an order every month? – Licensing and Purchasing FAQ
*4:Can several products be used at the same time with the All Products license? – Licensing and Purchasing FAQ
*5:Can I use my personal license for commercial development? – Licensing and Purchasing FAQ
*6:What is the difference between the commercial and personal licenses? – Licensing and Purchasing FAQ
*7:https://www.jetbrains.com/pycharm/buy/#edition=personal
*8:https://www.jetbrains.com/pycharm/buy/#edition=commercial
*9:Free Educational Licenses - Community Support
*10:venv --- 仮想環境の作成 — Python 3.9.1rc1 ドキュメント
*12:もし macOS で Pyenv を利用しているのであれば、「pyenv which python」で表示されるパスを指定します。
*13:「Virtualenv」と表示されていますが、内部では venv が使われるっぽいです。
*14:macOS で Pyenv を利用している場合は「pyenv which python」、Windows の場合は「where python」で表示されるパスを指定します。