私の開発環境 PyCharmの話(主にMayaでの使い方)
EditorはEmacsをメインで使用していますが、デバッグしたりする時にはPyCharmを使用しているのでそのあたりについてまとめをば。
デバッグをする際もEmacsでpdbを使用する…という手ももちろんあるんですが
pdbだとブレイクポイント設定したり変数の中身を確認したりするにしても出来なくはないがわかりにくい。
ので、その辺をカバーするのにPyCharmというツールを使用しています。
こんな感じ。
Python専用のIDEで、コレ単体でも十分(十分すぎる)ぐらいの機能をもっています。
Auto-Complete機能やデバッガ、特にDJangoに対して手厚くサポートされているのがGoodです。
SubversionやGit等のサービスにも対応しており、お金を払う価値のあるツールだと思います。
フリーのツールでもEclipse+PyDevであったり PyScripter、デバッガであればWinPdb等もあるのですが
・ Djangoのサポート
・ Mayaのデバッグもわかりやすい
・ Pythonの為に作られており、細かいところで使いやすい
等の理由でPyCharmを使っています。
これを使うことで、Emacsだと補いきれない部分を補っている感じです。
使い方は、
PyCharm側はオートリロードするようにしておいて、
(デフォルトでだったか、設定で変更したかは忘れました)裏で起動しておきます。
Emacsで編集し、一通り終わったら、PyCharm側でデバッグしたり実行したりしています。
ちなみに、VisualStudioでC++を書いたりするときも同じようにしてます。
VSもBuildボタンを押すためだけに存在(´・ω・`)
PyCharmは有償版と無償版が存在しています。
が、無償版だとリモートデバッグができなかったりDjangoのサポートがなかったりするので私は有償版を買いました。
下に書いてある設定は、有償版のみ対応で無償版ではできませんのでご注意ください。
Mayaでのデバッグ方法
PyCharm側の設定
SettingsのProject InterpreterのProject Interpreterの▼をクリックして「Add Local」をクリックします
デバッグをしたいMayaバージョンの bin/mayapy.exe を選択してOKを押します。
次にプロジェクトの設定をします。
右側にあるEdit Configrations… をクリックします。
+ をクリックして、その中のPythonRemoteDebugをクリックします。
Nameを適当に入れて(Maya2013等)
Portを 7720 にします。
終わったらOKを押します。
この設定は、PyCharmのプロジェクト1つにつき都度設定をします。
押すと、右上の一覧に設定した名前(Maya2013)が追加されるので、それを選択してその右にある虫のようなアイコンを押します。
押したら準備完了です。
続いてMaya側。
まず、PyCharmのデバッグ用モジュールをpathに追加します。
C:\Program Files (x86)\JetBrains\PyCharm 5.0.3\debug-eggs\pycharm-debug.egg
特に変更していなければ、↑にあります。
1 2 3 4 |
import sys sys.path.append('C:/Program Files (x86)/JetBrains/PyCharm 5.0.3/debug-eggs/pycharm-debug.egg') |
Pathを通しました。
続いてPyCharmに接続します。
PyCharm側で虫マークボタンを押すと、コンソールに
1 2 3 4 |
import pydevd pydevd.settrace('localhost',port=7720,suspend=False,stderrToServer=True) |
こんな感じでスクリプトが書いてあるので、それをコピーしてMayaのスクリプトエディタにペースト後、実行します。
接続されると、Connected to~と表示されます。
あとは、PyCharm側でBreakPointを設定した後Maya上でテストしたいスクリプトを実行します。
BreakPointを作成する時は、
PyCharmのコードの左側あたり(↓で赤い●がでてるあたり)をクリックします。
BreakPointに設定したところでストップし、変数の中身をかくにんしたりすることができます。
終わるときは、PyCharm側の■を押した後、Maya上
1 2 3 |
pydevd.stoptrace() |
を実行します。
これを実行しないと、次に settrace してもPyCharmと接続が上手くいきません。
こんな感じで、 settrace実行→テストしたいコマンドを実行→stoptraceを繰り返していけばOKです。
PyCharmのリモートデバッグについては、公式サイトのHelp参照。
Mayaの設定はTech-Artistsのスレッドを参考にしました。
PyCharmはまだ買って1ヶ月ちょい、まだまだすべての機能を使えていないので
しばらく使いつつ、便利にしていきたいと思います。