Python3で、＃のあとに日本語を使いたいです。方法をわかりやすく教えてください。[![スクリーンショット](https://i.stack.imgur.com/cN4U8.png)](https://i.stack.imgur.com/cN4U8.png)
CC BY-SA 3.0
2017-06-12T06:45:18.340
35502
2018-04-05T22:45:24.467
2018-04-05T22:45:24.467
19110
23713
question
python python3
Mac で Python3 IDLE を使った場合に日本語を入力する方法
スクリプトのエンコーディング(文字コード)を  
一行目または二行目に

```

    # coding: エンコーディング名
    # coding=エンコーディング名
    
```

のどちらかので形式で書きます。  
（正確には[リンク先](https://www.python.org/dev/peps/pep-0263/#defining-the-
encoding)で書かれているパターンにマッチする形式）

例えば、UTF-8 の場合、

```

    # coding: UTF-8
    
```

のように書きます。  
これで、スクリプトがUTF-8で書かれていることを理解してくれます。

```

    # -*- coding: utf-8 -*-
    
```

と書いているコードを見かけることがあるかもしれませんが、  
こうするとエディタであるEmacsもスクリプトのエンコーディングを理解してくれるためです。  
指定可能なエンコーディングは[リンク先](https://docs.python.org/3/library/codecs.html#standard-
encodings)を参照下さい。

参照：[Defining the Encoding](https://www.python.org/dev/peps/pep-0263/#defining-
the-encoding)
CC BY-SA 3.0
2017-06-12T07:23:06.853
35503
2017-06-12T07:31:47.697
2017-06-12T07:31:47.697
5044
5044
35502
answer
IDLEのShellに

> WARNING: The version of Tcl/Tk (8.5.9) in use may be unstable.  
>  Visit <http://www.python.org/download/mac/tcltk/> for current information.

と出ていませんか??

まさに書いてある通り、macOS付属の8.5.9というバージョンのTcl/Tkは不安定で、深刻なバグが存在します("the Apple-supplied
Tcl/Tk 8.5 still has serious bugs" via
<http://www.python.org/download/mac/tcltk/> )。

日本語が入力できないという現象も報告されていますし、8.5.11以降で解消されたという報告をしている人もいます。  
私自身も、現時点で最新の ActiveTcl で日本語が入力できることは確認しています。

リンク先から ActiveTcl をダウンロード/インストールして、PythonもmacOS付属のものではなくて、別のものを使いましょう。  
もしすでにmacOS付属のものではないPythonを使っているなら、新しくインストールしたTcl/Tkを見にいく様に、再コンパイルもしくは再インストールしましょう。
CC BY-SA 3.0
2017-06-30T00:47:39.243
35982
2017-06-30T00:47:39.243
12274
35502
answer
私は2018年4月現在、Sierra と High Sierra を利用していますが、macOS付属のPythonのTkinter
で、日本語入力が出来ないことを把握しています。

またActiveTcl の Tkでも、変換途中のテキストが見えないことも知っています。  
（入力確定したら表示されるので入力できない訳では無い）

他のエディタ入力した日本語テキストを Copy/Paste すれば入力できますが、残念ながら使い勝手は良くありません。

この事象はpythonに限らず、同じTkを利用している Ruby や Rでも同様に発生しています。  
（Tcl/Tkの問題ですから）
CC BY-SA 3.0
2018-04-05T13:52:28.790
42964
2018-04-05T13:52:28.790
19434
35502
answer