【初心者向け】Python開発で最も使われている統合環境開発PyCharmとは?インストールからテストまで
こんにちは!PA Labメディアです。
最近Pythonを初めた方はAtomやSublime Text、Visual Studio Codeのようなエディターで開発をしている方が多いかと思いますが、本日は統合開発環境PyCharmを紹介していきます。
JetBrains社が提供している統合開発環境で色々な職種の方に使用されています。このような統合開発環境を導入する事で業務効率化を進めていく事が出来ます。
今回の記事では以下のような方を対象にしております。
- 「PyCharmを利用したことがない」
- 「Gitやターミナル、エディターなどそれぞれ色々なツールを使用したくない」
- 「プログラミングの生産性向上を行いたい」
AI/自動化の専門家であるPA Labが、本日は生産性向上が出来る統合開発環境PyCharmを紹介していきます。
目次
PyCharmとは何か?
PyCharmは、JetBrains社が提供しているPython専用のエディター兼IDE(統合開発環境)です。プロの開発者向けIDEでWeb開発者、データサイエンティスト、研究者など様々な職種の方に使用されており、デバッグやリファクタリングが簡単にできたり、テストやPEPなども勿論対応しています。
Python開発者調査2020によると、Pythonの開発者で一番よく使用されているエディター(IDE含む)がPyCharmで33%、二位がVisual Studio Codeで29%、三位がVimで8%になっています。全体で見ても一位のPyCharmと二位のVisual Studio Codeが圧倒的ですが、Web開発者に限ると、PyCharmは1位で44%、二位がVisual Studio Codeで33%となっており、さらに圧倒的にPyCharmが優位なのが分かります。
Web開発者、データサイエンティスト、研究者など幅広く使用されているPyCharmですが、特に複雑なコードを書くWeb開発者にとってより重宝されている形になります。Webシステム開発用途でもデータ分析の用途でも、ひとまず検討すべきIDEと言えそうです。
PyCharmの料金体系
PyCharmはCommunity版とProfessional版の2種類が存在しており、Community版は無料で使用することが出来ます。フル機能のProfessional版でも月額1030円(+税)、年間10300円(+税)で使用する事が出来ます。
まずはProfessional版の30日間の無料体験版があるので、まずはこちらで試してみて、必要そうであればProfessional版を継続してみる事をおすすめします。無料で十分だと感じた方はCommunity版を使用されるのも一つの手です。こちらでも十分な機能が入っています。
なぜPyCharmか?
開発環境の構築がカンタンにできる
まずPyCharmであれば、プロジェクトを始める際の開発環境の構築が簡単にできます。
以下のように、プロジェクト作成画面にDjangoやFlaskといったPython用フレームワーク、AngularやReactといったJavaScript用フレームワークが用意されています。フロントエンドのフレームワークであるBootstrapなどもあります。
また仮想環境の構築も簡単にできます。
実際の開発時には仮想環境を使用した上で、プロジェクトごとにライブラリを整理して進めていくため必須の機能ですね。
コーディング補助機能が優れている
PyCharmでは、開発を進めやすくするため、コーディング補助機能がとても充実しています。JetBrain社では沢山の言語向けにIDEを開発しており、どのIDEでも基本的にはコーディング補助機能が優れている、というのが特徴的です。
まずデバッグですが、ブレークポイントを設置して実行することで、簡単にできるようになっています。
また、PyCharmは特にコード補完が強力で、メソッドやメソッドパラメーター、Djangoテンプレートの補完、ファイルパス補完なども補完可能です。
データベース連携が簡単
また、MySQLやMongoDBといったデータベースとの連携も簡単にできます。特に最近のクラウド系のデータベースであるAmazon Redshift、GoogleのBigQuery、MicrosoftのSQL Serverなどの連携まで対応しているのは嬉しいですね。
ターミナルで作業するエンジニアであってもSQLクライアントだけは別のGUIアプリを使用する方が多かったのですが、PyCharmであれば一つのアプリでターミナル、エディター、SQLクライアントと全ての作業を一つの場所で完結する事が出来ますね。
ターミナル操作がIDE内で完結
IDE内でターミナルが使用できるため、必要なコマンドもIDE上のターミナルで実行できたり、対話型シェルを起動して実行結果を確認することも可能です。
Gitとの連携がスムーズ
また、Gitと連携してリポジトリを作成したり、GitHubに接続することもできます。以下のように、バージョン管理システム(VCS)というメニューから、これらの操作が可能です。GitHubにプッシュしたり、プルリクエストを出したりすることもできます。
Githubとの連携を行なうためには以下のようにGIthubの認証設定を行なう必要があります。
PyCharmの始め方
インストールして、PEP8を設定する
PyCharmをインストールしたら、左上のPyCharmメニュー > Preferences…から、PEP 8のチェックツールを有効にしておきましょう。Preferences > Editor > Inspectionsから、PEP 8関連の検知を有効にできます。
PEP 8は、Pythonのコーディング規約で、Pythonでコーディングする上で最低限守るべきルールとなります。
例えば、こんな感じでPEP 8に抵触する部分があると、黄色く警告(Warnings)を出してくれます。あえてb = 10, とtupleにすると、その下のif文でも、整数型ではなくtupleを入れてください、と警告してくれます。
Pythonコードを動かす
試しに何かPythonコードを書いてみてください。緑色の実行ボタン(三角マーク)を押すと、右側に実行結果が表示されます。control + Rのショートカットキーでも、実行できます。
PyCharmのおすすめな便利機能
リファクタリング
リファクタリングとは、同じ動作をするコードでも、より可読性の高いコードに書き直していく作業のことをいいます。大規模な開発では、どんどんとコードが煩雑になっていくことがよくあるそうです。そこで、メンテナンス性や、不具合が発生した場合の調査時間の短縮のために、コードをきれいに書き直していく必要があります。
以下のように、PyCharmメニューのRefactor > Renameから、変数名や関数名をリファクタリングできます。要は、コードの置換機能ですね。
検索機能
また、「Shift」キーを2回押すと、検索画面が出てきます。クラス名や関数名だけの検索や、シンボル検索、ファイル検索、Gitの履歴検索など通常よりも細かい検索を行なう事が出来るため、必須機能となります。
ユニットテスト
最後に、PyCharmのユニットテストについて見ておきましょう。ユニットテストは、Pythonに標準で用意されているテスト用のライブラリです。プログラムをリリースするのであれば、正しく動作するかテストする必要がありますが、ユニットテストを使うことで、複数のプログラムをまとめてテストすることができます。また、何度も同じ条件でテストを実行できるところもユニットテストのメリットとなります。
今回は、以下のような、gender_converterというサンプルコードをテストしてみます。もしgenderがMであればMALE、FであればFEMALE、それ以外はUNKNOWN_GENDERという戻り値を返す、というコードとなっています。
def convert_gender(gender: str):
gender = gender.upper()
if gender == "M":
return "MALE"
elif gender == "F":
return "FEMALE"
else:
return "UNKNOWN_GENDER"
まず、「command + shift + T」のショートカットキーで、ユニットテスト用のPythonファイルtest_gender_converter.pyを作ります。
次に、ユニットテスト用の実行環境を作ります。以下のように、Edit Configurations…から+マークを押して、Python tests > Unittestsを選択します。
Unittestsを作成したらNameをUnittestsとし、TargetでScript pathをチェックします。そして、フォルダマークをクリックして、先ほど作ったtest_gender_converter.pyを選択します。
test_gender_converter.pyには、以下のようなコードを記述します。まずimport文を2行書きます。それぞれ、unittestファイルからTestCaseを呼び出す、gender_converterファイルからconvert_gender関数を呼び出す、という意味になります。
次にクラス名Testを作成し、引数をTestCaseとします。assertEqual(a, b)というアサートメソッドを使ってa == bであるかどうかをテストすることが一般的です。ここでは、第一引数と第二引数にactualとexpectedという変数を入れて、actual == expectedかどうかをテストしてみます。
from unittest import TestCase
from gender_converter import convert_gender
class Test(TestCase):
def test_convert_gender(self):
actual = convert_gender("M")
expected = "MALE"
self.assertEqual(actual, expected)
これで、右下の実行画面に以下のようにOKと表示されれば、問題なくプログラムが動作しています。
出典:YouTube, Amigoscode PyCharm Tutorial | Full Course in 2 Hoursより引用
まとめ
いかがでしたでしょうか。この記事では、Pythonでの開発に最も多く使われている統合開発環境、PyCharmについてご紹介しました。見てきたとおり、PyCharmはPythonでの開発をサポートする機能をいくつも備えています。JetBrains社によると、Pythonでの開発に必要なすべての機能があるそうです。
記事で取り上げた以外にも、重要な機能が数多くあります。例えば、PyCharmからJupyter notebookやDockerを使うこともできます。また、プロジェクト上のすべての変更を追跡、復元できるローカル履歴機能も、開発者から非常に支持されているようです。
PA Labでは「AIを用いた自動化×サービス開発」の専門家として活動をしています。高度なデータ分析からシステム開発まで一貫したサービス提供を行っており、特に機械学習やディープラーニングを中心としたビジネス促進を得意としております。
無料で分析設計/データ活用に関するご相談も実施中なので、ご相談があればお問い合わせまで。
この記事へのコメントはありません。