みろりHP


緑色さんの多目的ブログ
みろりえいちぴー
ごゆるりとおくつろぎあさーせ。
<< Python クラスの使いみち | main | 宮部みゆき『ICO』 >>
| カテゴリ:プログラミング |
Sublime Text3のPythonビルドで日本語出力できない問題と、Python2、3ビルド切り替え



俺の愛用するSublime Text3のビルド機能だけど、pythonをビルドしたとき日本語が表示されない問題がある。以前のST3初期設定記事で書いたとおりpython3に関しては解決した話なんだけど、パイソニスタの末席を汚しまくるものとしてはやっぱりpython2もカバーしとかんとなと思ってまとめてみたぜ。今回の内容は以下。

  • Python2ビルドとPython3ビルドの切り替えをできるようにする
  • 2をビルドするとき日本語が表示されるようにする
  • 3をビルドするとき日本語が表示されるようにする



切り替えがしたいときは、2と3のpythonビルドシステムを新たに追加すればよい。ツール->ビルドシステム->ビルドシステム追加 から以下の sublime-build ファイルを作ってそれぞれの名前で保存。場所はデフォルト(C:/Users/ユーザ名/AppData/Roaming/Sublime Text 3/Packages/User)のところ。

// Python2.7.sublime-build の名前で保存(Python2.7の名前で表示される)
{
    "cmd": ["python", "-u", "$file"],
    "file_regex": "^[ ]*File ¥"(...*?)¥", line ([0-9]*)",
    "selector": "source.python",

    "windows":
    {
        "encoding": "cp932",
        "path"    : "C:/Python27"
    }
}

// Python3.4.sublime-build の名前で保存(Python3.4の名前で表示される)
{
    "cmd": ["python", "-u", "$file"],
    "file_regex": "^[ ]*File ¥"(...*?)¥", line ([0-9]*)",
    "selector": "source.python",

    "windows":
    {
        "encoding": "cp932",
        "path"    : "C:/Python34"
    }
}

例によって丸コピペするとバックスラッシュ部分が円マークになっちまうんで適宜バックスラッシュに直すこと。これで ツール->ビルドシステム に上のふたつが追加されるので、チェックを入れることで2と3がそれぞれ実行できる。なお俺は普通ビルドシステムは「自動」にチェックを入れてるのだけど、そのとき実行されるのはいま追加した「Python2.7」でも「Python3.4」でもなく、デフォルトの「Python」だ。「Python」に対応しているのはパスで先に指定しているほうだ。俺は基本的には3を使うので
C:¥Python34¥;C:¥Python27¥;
の順番に指定してある。



2のビルドで日本語出力を有効にするのは、出来たことは出来たが、ちと納得いってない。とりあえず手順は以下。

  • 上記にある「自動」あるいは「Python」で実行する場合は……
    • C:/Users/ユーザ名/AppData/Roaming/Sublime Text 3/Packages に Python というフォルダを作る
    • その中に、上に書いた Python2.7.sublime-build のビルドファイルを入れる
  • 上記にある「Python2.7」で実行する場合↑は必要ない
  • 実行するpyファイルに以下のコードを加える
    import codecs, sys
    sys.stdout = codecs.getwriter("cp932")(sys.stdout)
    

ST3で実行するためだけにコードを足すというのはどうも気持ちが悪いので他の方法を見つけなかったんだけど、見つからなかった残念。いつか見つかるといいんだけれども。



3のビルドで日本語出力を有効にするのは容易だ。2のやり方とだいたい同じ。

  • 上記にある「自動」あるいは「Python」で実行する場合は……
    • C:/Users/ユーザ名/AppData/Roaming/Sublime Text 3/Packages に Python というフォルダを作る
    • その中に、上に書いた Python3.4.sublime-build のビルドファイルを入れる
  • 上記にある「Python3.4」で実行する場合↑は必要ない



長らくpython2をいじってなかったんで、久々に文字コード問題とガチバトルを繰り広げてしまったぜ。プログラミングやり始めた頃の俺はよくメゲなかったものだよ。 付録として、バージョン切り替え、日本語出力テスト用に使ってたコードを添えておく。

# !/usr/bin/env python
# coding: utf-8

# ==============================
# python2.7で通るコードだよ
# ==============================

# これを書くことでsublime text3でも日本語がほいほい出るようになる
import codecs, sys
sys.stdout = codecs.getwriter("cp932")(sys.stdout)

print sys.version_info
print u"aあ" + u"あa"
print u"い"
print "b"


# 以下のようになればOK
# sys.version_info(major=2, minor=7, micro=11, releaselevel='final', serial=0)
# aああa
# い
# b

# !/usr/bin/env python
# coding: utf-8

# ==============================
# python3.4で通るコードだよ
# ==============================

import sys

print(sys.version_info)
print("aああa")
print("い")
print("b")


# 以下のようになればOK
# sys.version_info(major=3, minor=4, micro=3, releaselevel='final', serial=0)
# aああa
# い
# b


| 緑色 | プログラミング | comments(0) |
| カテゴリ:- |
スポンサーサイト
| スポンサードリンク | - | - |









      1
2345678
9101112131415
16171819202122
23242526272829
3031     
<< July 2017 >>
+ みろりHP内検索
+ 閲覧記事
+ 過去記事アーカイブ
+ カテゴリ
+ 年月選択
  • 2017年 07月 (5)
  • 2017年 06月 (4)
  • 2017年 05月 (7)
  • 2017年 04月 (8)
  • 2017年 03月 (7)
  • 2017年 02月 (10)
  • 2017年 01月 (6)
  • 2016年 12月 (8)
  • 2016年 11月 (8)
  • 2016年 10月 (5)
  • 2016年 09月 (5)
  • 2016年 08月 (7)
  • 2016年 07月 (9)
  • 2016年 06月 (6)
  • 2016年 05月 (8)
  • 2016年 04月 (10)
  • 2016年 03月 (10)
  • 2016年 02月 (8)
  • 2016年 01月 (9)
  • 2015年 12月 (9)
  • 2015年 11月 (6)
  • 2015年 10月 (5)
  • 2015年 09月 (4)
  • 2015年 08月 (8)
  • 2015年 07月 (5)
  • 2015年 06月 (3)
  • 2015年 05月 (7)
  • 2015年 04月 (8)
  • 2015年 03月 (12)
  • 2015年 02月 (8)
  • 2015年 01月 (4)
  • 2014年 12月 (5)
  • 2014年 11月 (5)
  • 2014年 10月 (7)
  • 2014年 09月 (4)
  • 2014年 08月 (7)
  • 2014年 07月 (6)
  • 2014年 06月 (4)
  • 2014年 05月 (12)
  • 2014年 04月 (9)
  • 2014年 03月 (6)
  • 2014年 02月 (6)
  • 2014年 01月 (8)
  • 2013年 12月 (7)
  • 2013年 11月 (10)
  • 2013年 10月 (10)
  • 2013年 09月 (9)
  • 2013年 08月 (11)
  • 2013年 07月 (10)
  • 2013年 06月 (9)
  • 2013年 05月 (15)
  • 2013年 04月 (11)
  • 2013年 03月 (5)
  • 2013年 02月 (7)
  • 2013年 01月 (6)
  • 2012年 12月 (9)
  • 2012年 11月 (10)
  • 2012年 10月 (10)
  • 2012年 09月 (4)
  • 2012年 08月 (2)
  • 2012年 07月 (7)
  • 2012年 06月 (13)
  • 2012年 05月 (13)
  • 2012年 04月 (15)
  • 2012年 03月 (4)
  • 2012年 02月 (12)
  • 2012年 01月 (9)
  • 2011年 12月 (5)
  • 2011年 11月 (13)
  • 2011年 10月 (2)
  • 2011年 09月 (2)
  • 2011年 08月 (1)
  • 2011年 06月 (1)
  • 2011年 05月 (4)
  • 2011年 04月 (10)
  • 2011年 03月 (8)
  • 2011年 02月 (11)
  • 2011年 01月 (14)
  • 2010年 12月 (14)
  • 2010年 11月 (17)
  • 2010年 10月 (17)
  • 2010年 09月 (19)
  • 2010年 08月 (22)
  • 2010年 07月 (18)
  • 2010年 06月 (16)
  • 2010年 05月 (19)
  • 2010年 04月 (15)
  • 2010年 03月 (22)
  • 2010年 02月 (18)
  • 2010年 01月 (18)
  • 2009年 06月 (2)
  • 2009年 04月 (1)
  • 2007年 12月 (10)
  • 2007年 11月 (7)
  • 2007年 10月 (9)
  • 2007年 09月 (4)
  • 2007年 07月 (5)
  • 2007年 06月 (11)
  • 2007年 05月 (6)
  • 2007年 04月 (4)
  • 2006年 01月 (20)
  • + ブックマーク
    + 最近のコメント
    + アクセスカウンター
    全体(since 2010.02.03.)
    今日… 昨日…