Python
Django
vagrant
VirtualBox
Pyharm

PyCharmのVagrantリモートデバッガ設定

More than 1 year has passed since last update.

先日Vagrant+VirtualBoxの仮想サーバーを自分のマシンに設定をする機会がありました。PyCharmは非常に便利ですが、仮想環境でデバッガを起動させるためにはローカル環境でデバッガ設定をするより大分複雑だったため記事に残しておきます。

作業環境:
PC : macOS Sierra バージョン10.12.6
IDE : PyCharm 2017.1.5
仮想サーバー : OS : Ubuntu 14.04.5 LTS, Trusty Tahr
       : 言語 : Python 2.7.10, Django 1.6
       : DB : MySQL5.6

まず出発点となる大本の記事
https://qiita.com/masahiro-fukushima/items/67959a0dfede69c9d653

この記事では2つの方法がありますが、remote interpreter方式のほうを使いました。
途中から設定が変わるのでそこから説明していきます。

スクリーンショット 2017-10-20 18.43.30.png

HOST:
ローカルホストのIPアドレスを指定します。Port:は仮想サーバーが使っているものを指定してください。

User name:
仮想サーバーに設定したユーザー名を入れてください。

Auth type:
パスワード認証だったのでPasswordにしてパスワードを入力します。

Python interpreter path:
これがデフォルトだと/usr/bin/pythonと入力されていてローカルのPythonのパスになっているので仮想サーバーのPythonのパスに変えてください。

次に
path mappings横のボタンをクリックして、ローカルのディレクトリとリモートのディレクトリのパスを合わせます。
OKを押して作成完了。

......なんですが、実はインタプリタ設定画面にVagrantのチェックボックスがあります。

スクリーンショット 2017-10-24 11.10.44.png
こっちの設定だとVagratfileとVagrantfile.localが置いてあるフォルダを参照して、仮想サーバーのPythonパスを設定するだけで完了します。どっちを使ってもできるので特に心配はいりません。

次にRun→Edit Configurationsを選択してウインドウを開きます。
+ボタンを押してDjango serverを追加します。
スクリーンショット 2017-10-20 18.54.46.png

デバッガの設定をします。
スクリーンショット 2017-10-24 19.15.13.png

Name:
デバッガーの名前をつけます。

Host:
ここはローカルホストのIPアドレスを入れたくなってしまうのですが、仮想サーバー環境なので、外部マシンからアクセスできるようなアドレスを入れないといけません。

Port:
vagrantの場合開放されているポート番号はVagrantfileに書いてあります。

Environment variables:
ここではDJANGO_SETTINGS_MODULEで設定を読み込んでおきます。
https://docs.djangoproject.com/ja/1.11/topics/settings/#designating-the-settings

Python interpreter:
作成したリモートインタプリタを読み込みます。

Working Directory:
作業しているディレクトリのパスを入れます。

Path mappings:
先程設定したので特に何も書かなくて大丈夫です。

Add content roots to PYTHONPATH:
Add source roots to PYTHONPATH:
今回の導入したプロジェクトでは外さないと動作しないのでチェックを外してあります。

設定するのに気をつけないといけないところはアドレスや、ポートあたりです。リモートデバッガは仮想環境によって設定が変わってくることが予想されるので全部が同じようにいかないとこが難しいところだと思います。