mofoolog

再検索を省きたいから書いてるログ

SublimText3のPython開発環境(ArchLinux)

f:id:mofoolog:20160302200700j:plain

SublimeText3の基本セッティングについては下記の記事で書いた。

また、Python環境はAnacondaを利用するセッティングで下記の記事を書いた。

以上を踏まえて、今回はSublimeText3でPythonを操作する設定と、利用中のSublimeText3プラグインとその設定について残しておく。

目次

 

Python用SublimeText3プラグインと設定


Python Improved

Python Improved」は、SublimeText3にデフォルトで入っているPythonシンタックス等は少し古くなってしまっているので新しくするプラグイン。「Python 3プラグインに触発されてPython2系とPython3系どちらにも対応するよう作られたもよう。

しかし、内容的にはかなり突っ込んだ変更が行われていて、コード表示がとても細かく綺麗に表示できるようになる。(使用中のSchemeにより異なる)

Python Improvedの導入

  • 「Ctrl + Shift + P」としコンソールにinstallと入力後PythonImprovedを検索しインストール

Python Improvedの設定

  • 「***.py」ファイル上で「表示」→「シンタックス」→「PythonImproved」を選択

Color Schemeとの相性など

この章の内容は参考に書いている。現時点で私個人はNeon Color Schemeは使っていない。

Python Improvedが推奨しているColor Schemeは「Neon Color Scheme」ですが、これには理由がある。Neon Color Schemeはかなり細かく表示カラー設定が可能なSchemePython Improvedの設定の細かさに対応している。

もし、Neon Color Schemeをそのまま使うならPackage Controlから検索してインストール後Settings-Userに「"color_scheme": "Packages/Neon Color Scheme/Neon.tmTheme"」を追記すれば使える。

もしくは、「tmtheme-editor」サイトを表示、「Gallery」→「Neon」を表示すると、自分好みのカラー配置が可能になるので自作してみるのもよい。

おまけ

Neon Color SchemePythonのコード編集時だけ表示したい場合の手順。

  • 「~/.config/sublime-text-3/Packages/Python Improved」ディレクトリを開く

  • Python Improved」ディレクトリ内に「PythonImproved.sublime-settings」ファイルを新規作成し下記コードを入力し保存

{
    "color_scheme": "Packages/Neon Color Scheme/Neon.tmTheme"
}
  • SublimeTextを再起動

自作した場合は、「Packages/<保存ディレクトリ>/<保存ファイル名>.tmTheme」に適時変更。

 

Anaconda

Anacondaと言っても、こちらはSublimeTextプラグインのAnacondaであって、「science, math, engineering, and data analysis」用Python distributionとはまったくの別物。

SublimeTextプラグインAnacondaの動作画像をこちらで確認。(複数の機能が確認できる)

Anacondaプラグインは、「Jedi」、「PyFlakes」、「pep8」、「pep257」、「PyLint」、「McCabe」等のチェック機能と「autopep8」、「Auto Completion」、「Auto Imports」その他諸々のコード入力補助機能をまとめたプラグイン。様々なプラグインをまとめているのでプラグイン同士の干渉や重複なんかは調整されているはず? 不要な機能は個人設定でカットできる。

個々のプラグインを探してインストールしても良いが面倒だし、Anacondaの製作者は新しいプラグインを監視しているらしく、「Auto Imports」なんかはGithub上でしか公開されていなかったにもかかわらず公開後間もなくするとAnacondaに取り込まれていた。素晴らしい!

Anacondaの導入

「Ctrl + Shift + P」としコンソールに「install」と入力後「anaconda」を検索しインストール。

Anacondaの設定

  • 「Preferences」→「Package Settings」→「Anaconda」→「Settings - User」と開く

  • 下記コードを入力し保存

{
    "folders":
    [
        {
            "follow_symlinks": true,
            "path": "."
        }
    ],
    "settings":
    {
        "auto_python_builder_enabled": false,
        "python_interpreter": "/opt/anaconda3/bin/python", // "/opt/anaconda2/bin/python"
        "pep8_max_line_length": 119,
        "anaconda_linter_mark_style": "none"
    }
}

基本的には「Preferences」→「Package Settings」→「Anaconda」→「Settings - Default」と見比べながら設定。

"python_interpreter":でPython2とPython3のパスを切り替えながら使用することになる。

 

Python用ビルドシステム登録


ビルドシステムを書き換える。上記で紹介したAnacondaプラグインにもビルドシステムは入っているが、複数のビルド設定ができないので自前で実装することにした。

ビルドシステムの登録

  • 「Preferences」→「Packages フォルダ・・・」をクリック

  • ~/.config/sublime-text-3/Packagesフォルダ内にMyBuildSystemフォルダを新規作成

  • MyBuildSystemフォルダ内にPython3.sublime-buildというファイル名で下記コードを入力後保存

{
    "shell_cmd": "/opt/anaconda3/bin/python -u \"$file\"",
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python",

    "variants":
    [
        {
            "name": "byte compile",
            "shell_cmd": "/opt/anaconda3/bin/python -m py_compile \"$file\""
        },
        {
            "name": "optimize",
            "shell_cmd": "/opt/anaconda3/bin/python -OO -u \"$file\""
        }
    ]
}
  • MyBuildSystemフォルダ内にPython2.sublime-buildというファイル名で下記コードを入力後保存
{
    "shell_cmd": "/opt/anaconda2/bin/python -u \"$file\"",
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python",

    "variants":
    [
        {
            "name": "byte compile",
            "shell_cmd": "/opt/anaconda2/bin/python -m py_compile \"$file\""
        },
        {
            "name": "optimize",
            "shell_cmd": "/opt/anaconda2/bin/python -OO -u \"$file\""
        }
    ]
}

簡単な解説は、コード中の「"shell_cmd":」のところに自分のPython環境のPathを通すこと。

ビルドシステムの使い方

  • 「***.py」ファイル上で「ツール」→「ビルドシステム」→「Python3(またはPython2)」を選択

  • 「Ctrl + Shift + B」で選択窓が表示されるので、通常のビルド、バイトコンパイル、バイトコンパイルの最適化から行いたい処理を選択できるようにしてある

また、バイトコンパイルと最適化コマンドについては以下サイトが分り易い。(最近は自動化されたようなので気にする必要ないかも)

 

Pythonスニペット登録


スニペット登録については、以下サイトが参考になる。

以下今回の手順。

スニペット登録手順

  • ~/.config/sublime-text-3/Packagesディレクトリ内にMySnippetディレクトリを作成

  • MySnippetディレクトリ内にpythonディレクトリを作成

  • pythonディレクトリ内にPython_Start_Template.sublime-snippetというファイル名で下記コードを入力し保存

<snippet>
    <content><![CDATA[
#!/usr/bin/env python
# coding: UTF-8


def main():
    ${1:pass}


if __name__ == '__main__':
    main()

]]></content>
    <!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
    <tabTrigger>py..</tabTrigger>
    <!-- Optional: Set a scope to limit where the snippet will trigger -->
    <scope>source.python</scope>
</snippet>

スニペットの使い方

  • SublimeTextの「<新規>.py」ファイル上で「py」と入力すると選択窓が出現

  • 「py..」を選択し[Enter]でスニペット登録したコード表示完了

 

最後に


f:id:mofoolog:20160302185030p:plain:w600

以前はSublimeREPLのPython部分を色々改造しながら使っていたが、挙動が気に入らず使用中止した。この記事の最上部でもリンク記事で示したが、私のPython開発環境にはIPython QtCosoleも有り正常な動作環境で対応できるのでその方がストレスがない。

最後にWeb系開発者の方なら「SublimeCodeIntel」が第一候補なのかもしれない。(噂では少し動作が重いらしいが、PCのスペック次第なのかな?)