Linux あれこれ

Linux 関連(一部 Windows11 )の備忘録です。

Arch: Manjaro Xfce にPython の学習環境を構築 (sublime text 3)〈H57〉

登録日: 2020-10-30 更新日: 2020-10-31

「Manjaro Linux Xfce 20.1.1」をUSB メモリにインストール しました。

Python の学習本を購入したので、Manjaro Xfce 20.1 に学習環境を構築してみました。

-

ダウンロードしてのインストールを選んだので、「Fedora 32」で「日本語(かな漢字)」(ibus-kkc) の環境でもこの手順は使えました。たぶん「CentOS 8.2」でも使えると思います。

-

「目次」

-

sublime text 3」の画面:

-


公式サイト

python 公式サイト

すでに、Python 3.9 が公開されています。

-


Python をイチから学習するために購入した本:

-

「最短距離でゼロからしっかり学ぶ Python 入門 必修編」

著作: Eric Matthes 氏

和訳: 鈴木たかのり、安田善一郎 氏

発行: 技術評論社 2020年9月15日 初版 ISBN 978-4-297-11570-8

Eric Matthes 氏著の「Python Crash Course」(Python 短期集中講座)第2版を日本語に翻訳、それを 「必修編」「実践編」 の2つに分けて提供している本です。

WindowsMacOSLinux(Ubuntu) に対応。 Python 3.6 以上でサンプルは動作。(Python 2 は2020年01月01日でサポートが切れたため第2版で削除されました。)

-

今回購入したのは入門編となる「必修編」です。実践に必要な基礎知識を演習問題を解きながら理解して行く方式です。

  • 良い点は、実績。原本が世界的に使われているPython の初心者本で、第2版まで出ているということ。

  • 難点は、「高価」なこと(価格なりの高品質)。 および、「文字が小さい」こと(視力が落ちているのでちょっとつらいけど、見やすいフォント)

-

現在学習している「Go 言語」で推奨(というかgofmt で強制)されているのは「Tab」キーでのインデントです。 「Python」で推奨のインデントは「半角スペース 4個」なので「Sublime Text」をPython 専用とするのはアリかも。

→既存のファイルでも、後で半角スペースやTab に修正してくれる機能が使えます。

他のテキストエディタと違うのは、設定メニューが「設定ファイルの編集になる」という点ですが、最初に決め打ちしておけばいいだけです。

-


Python の学習環境の構築

-

Python がインストールされているかの確認

$ python
Python 3.8.5 (default, Sep  5 2020, 10:50:12) 
[GCC 10.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

>>> exit
Use exit() or Ctrl-D (i.e. EOF) to exit
>>> exit()
$ 

exit() もしくは、Ctrl+D で終了

$ whereis python
python: /usr/bin/python3.8 /usr/bin/python /usr/bin/python3.8-config /usr/lib/python3.8 /usr/lib/python2.7 /usr/include/python3.8 /usr/share/man/man1/python.1.gz

$ which python
/usr/bin/python
  • Python 3.8.5 なので、Python 3.6 以上という学習本の条件はクリア。 また、端末からは「python」のみで起動できました。

「python3」と入力しないと起動できないときは、sublime-text の設定ファイル(Python3-sublime-build) の作成が必要のため、その紹介があります (p9) 。今回は不要でした。

-


sublime text について:

Subulime Text(サブライムテキスト)はPython で書かれた多機能なエディタです。 有料で、未登録だとウィンドウのタイトルバーに(UNREGISTERED) が付いたり、時々ポップアップが表示されたりしますが邪魔しません。無料で全機能が使えることに感謝。

-

利点:

  1. ファイルを開くには少し時間がかかります。ただし、編集やスクロールが軽いのでストレスはありません。

  2. gedit で削除されたマップ表示のスクロールバーが健在です。

  3. 起動すると以前開いていたタブ(開いていたファイル)を自動で開いてくれます。便利です。

  4. 個人的に大きな利点と思えることは「kernel 5.8」でも影響なく使えることです。 自分のPC だとATOMVS Code だと「ハードウェアアクセレータをオフ」にして起動しないと、デスクトップが固まります。この影響は大。

  5. 最新版だと、通常の入力メソッドの設定だけで日本語入力できます。余計なパッケージのインストールは要りません。

-

  • Sublime-text-4 も公開されましたが、実績のあるSublime-text-3 を選択しました。
$ yay -S Sublime-text-3

Manjaro だと、yay でインストールできますが、Fedora 32 やCentOS でもインストールできるやり方として、 ダウンロードしてインストールする手順を選んでみました。

-

参考:

SublimeText3 初期設定 日本語に完全対応する

→「Subulime Text 日本語表示 日本語入力」として検索すると、古い手順(独特で面倒)のみがヒット。 改善された後の最新の手順はまず出てきませんでした。

Sublime Text 3 の最新版 (Build 3211) は、もっと簡単になっています。

-


Manjaro Xfce 20.1 に日本語入力(fcitx-mozc)をインストール

手順は、Manjaro Xfce日本語入力(fcitx-mozc)のインストール を参照。

確認:

$ yay -Ss fcitx-mozc | grep インストール済み
community/fcitx-mozc 2.23.2815.102-4 (14.9 MiB 29.3 MiB) (インストール済み)

-


sublime-text のインストール:

-

1. Sublime Text 3 をダウンロード

公式サイト を開きます。

Version: Build 3211

    Linux repos - also available as a 「64 bit」 or 「32 bit」 tarball

64 bit 」をクリック

→「ファイルを保存する」

-

2. tar.bz2 ファイルの解凍

ダウンロードした「sublime_text_3_build_3211_x64.tar.bz2」を右クリック→「ここで展開」

→「sublime_text_3」フォルダが作成されました。

$ cd ~/ダウンロード/

$ ls -1
sublime_text_3
sublime_text_3_build_3211_x64.tar.bz2

$ ls ~/ダウンロード/sublime_text_3/
Icon           crash_reporter  sublime.py         sublime_text.desktop
Packages       plugin_host     sublime_plugin.py
changelog.txt  python3.3.zip   sublime_text

-

3. 解凍したフォルダを「/opt」へ移動

$ sudo mv sublime_text_3 /opt/

$ ls -l /opt/sublime_text_3/
:
drwxr-xr-x. 7 ubn ubn     4096 10月  1  2019 Icon
drwxr-xr-x. 2 ubn ubn     4096 10月  1  2019 Packages
-rw-r--r--. 1 ubn ubn    56720 10月  1  2019 changelog.txt
-rwxr-xr-x. 1 ubn ubn  1120776 10月  1  2019 crash_reporter
-rwxr-xr-x. 1 ubn ubn 15093528 10月  1  2019 plugin_host
-rwxr-xr-x. 1 ubn ubn  2628080 10月 11  2018 python3.3.zip
-rw-r--r--. 1 ubn ubn    38852  9月 17  2019 sublime.py
-rw-r--r--. 1 ubn ubn    36887  9月 17  2019 sublime_plugin.py
-rwxr-xr-x. 1 ubn ubn  8803928 10月  1  2019 sublime_text
-rw-r--r--. 1 ubn ubn      532 10月  1  2019 sublime_text.desktop

-

4. sublime_text へのシンボリックリンクを作成(バイナリを配置)

$ sudo ln -s /opt/sublime_text_3/sublime_text /usr/bin/subl

$ ls -l /usr/bin/subl
lrwxrwxrwx 1 root root 32 10月 29 22:41 /usr/bin/subl -> /opt/sublime_text_3/sublime_text

$ subl --version
Sublime Text Build 3211

→端末で、subl と入力すると、Sublime Text 3 が起動します。

-

5. desktopファイルの修正:

$ sudo nano /opt/sublime_text_3/sublime_text.desktop

-

修正 1:
Exec=/opt/sublime_text/sublime_text %F

Exec=/opt/sublime_text_3/sublime_text %F

-

修正 2:
Exec=/opt/sublime_text/sublime_text -n

Exec=/opt/sublime_text_3/sublime_text -n

-

修正 3:
Exec=/opt/sublime_text/sublime_text --command new_file

Exec=/opt/sublime_text_3/sublime_text --command new_file

-

修正 4:
Icon=sublime-text

Icon=/opt/sublime_text_3/Icon/48x48/sublime-text.png

-

修正されたかの確認:
$ cat /opt/sublime_text_3/sublime_text.desktop

-

6. desktopファイルをシステムに配置:

$ sudo cp /opt/sublime_text_3/sublime_text.desktop /usr/share/applications/sublime_text.desktop

$ ls -l /usr/share/applications/sublime_text.desktop
-rw-r--r-- 1 root root 573 10月 29 22:52 /usr/share/applications/sublime_text.desktop

→リンクだとメニューエディターで保存できません。

-

7. ログアウト→ログイン

-

8. メニューエディターで確認:

  • ここの作業はアプリのアイコンが表示されていれば省略できます。Fedora 32 やCentOS では不要です。

-

メニュー →設定 →「メニューエディター」

左側にある「開発」の三角をクリック→「Sublime Text」をクリック

アプリアイコンをクリック→「ファイルを参照」

→他の場所 →コンピューター

→opt →sublime_text_3 →Icon →48x48 →sublime-text.png →OK

ウィンドウの右上の「x」で閉じます。→保存

-

9. 日本語入力(fcitx-mozc)の確認

メニュー →開発 →「Sublime Text」→Sublime Text 3 が起動

→メニューは英語ですが、日本語入力できました。 日本語化せずに、このまま使うのもアリかも。

日本語オン/オフの切替は個人的に、日本語オン: 「ひらがな」キー、日本語オフ: 「無変換」キー に割当て済み。

→設定通りに使えています。

-


Sublime Text に「Package Control」をインストール

  • 以前はサイトで表示の「Sublime Text 3」タブのスクリプトをコピーして、貼付ける作業が必要でした。今回は要りません。

-

1. 「Package Control」をインストール

Sublime Text 3 を起動、「Tools」→一番下にある「Install Package Control...」をクリック

「Pachage Control was successfully installed」のダイアログが表示 →OK

-

2. 「Preferences」→一番下にある「package control」

または、Ctrl+Shift+P 。(Esc キーで消せます)

-

3. 「Package Control:」の検索窓 に「install」と入力。

表示されたリストから「Package Control:Install Package」を選択

-

しばらくすると検索窓が表示されます→上段に「japan」と入力

→上段にある「Japanize」(Japanese menu for Sublime Text 2/3) を選択

→メニューバーとその中のメニューの一部だけが日本語化されました。

-

「Package Control Messages」タブが新しく開き、

Windows の場合の手順が表示されます。参考にはできます。 (~/.config/sublime-text-3/Packages/Japanize/README.md)

-

4. 「Default」フォルダを作成:

$ cd ~/.config/sublime-text-3/Packages/
$ mkdir Default

$ ls
Default  Japanize  User

-

5. 作業前の確認:

$ ls ~/.config/sublime-text-3/Packages/Japanize/
 Context.sublime-menu.jp                'Side Bar.sublime-menu.jp'
 Encoding.sublime-menu.jp                Syntax.sublime-menu.jp
'Find in Files.sublime-menu.jp'         'Tab Context.sublime-menu.jp'
 Indentation.sublime-menu.jp            'Widget Context.sublime-menu.jp'
'Line Endings.sublime-menu.jp'           messages
 Main.sublime-menu                       messages.json
 Main.sublime-menu.jp                    package-metadata.json
 README.md                               packages.json
'Side Bar Mount Point.sublime-menu.jp'

$ ls Japanize/*.jp
 Japanize/Context.sublime-menu.jp
 Japanize/Encoding.sublime-menu.jp
'Japanize/Find in Files.sublime-menu.jp'
 Japanize/Indentation.sublime-menu.jp
'Japanize/Line Endings.sublime-menu.jp'
 Japanize/Main.sublime-menu.jp
'Japanize/Side Bar Mount Point.sublime-menu.jp'
'Japanize/Side Bar.sublime-menu.jp'
 Japanize/Syntax.sublime-menu.jp
'Japanize/Tab Context.sublime-menu.jp'
'Japanize/Widget Context.sublime-menu.jp'

-

6. すべての「.jp」ファイル(11個)をファイル名を変えて「Default」フォルダにコピー:

$ cd ~/.config/sublime-text-3/Packages/

$ cp  Japanize/Context.sublime-menu.jp Default/Context.sublime-menu
$ cp  Japanize/Encoding.sublime-menu.jp Default/Encoding.sublime-menu
$ cp 'Japanize/Find in Files.sublime-menu.jp' 'Default/Find in Files.sublime-menu'
$ cp  Japanize/Indentation.sublime-menu.jp Default/Indentation.sublime-menu
$ cp 'Japanize/Line Endings.sublime-menu.jp' 'Default/Line Endings.sublime-menu'
$ cp  Japanize/Main.sublime-menu.jp Default/Main.sublime-menu
$ cp 'Japanize/Side Bar Mount Point.sublime-menu.jp' 'Default/Side Bar Mount Point.sublime-menu'
$ cp 'Japanize/Side Bar.sublime-menu.jp' 'Default/Side Bar.sublime-menu'
$ cp  Japanize/Syntax.sublime-menu.jp Default/Syntax.sublime-menu
$ cp 'Japanize/Tab Context.sublime-menu.jp' 'Default/Tab Context.sublime-menu'
$ cp 'Japanize/Widget Context.sublime-menu.jp' 'Default/Widget Context.sublime-menu'

$ ls Default/
 Context.sublime-menu         'Side Bar Mount Point.sublime-menu'
 Encoding.sublime-menu        'Side Bar.sublime-menu'
'Find in Files.sublime-menu'   Syntax.sublime-menu
 Indentation.sublime-menu     'Tab Context.sublime-menu'
'Line Endings.sublime-menu'   'Widget Context.sublime-menu'
 Main.sublime-menu

→メニューの日本語化には「Main.sublime-menu」が一番効いたみたい。

-

7. 「User」フォルダにコピー:

この作業は省略できそうだけど、他のプラグインを入れて上書きされて英語になったトップメニューを日本語化してくれるみたい。

$ ls ~/.config/sublime-text-3/Packages/User/
'Package Control.sublime-settings'   Preferences.sublime-settings
'Package Control.user-ca-bundle'

$ cd ~/.config/sublime-text-3/Packages/
$ cp Japanize/Main.sublime-menu User/

$ ls User/
 Main.sublime-menu                  'Package Control.user-ca-bundle'
'Package Control.sublime-settings'   Preferences.sublime-settings

-


Python 用にSublime Text 3 を設定:

-

1. Tab キーをスペースに変換:

表示 →インデント設定 →「スペースを使用」にチェック

「インデント幅: 4」にチェック

Tab キーを押すと、半角スペース 4個が入力されます。

-

  • すでにスペースとTab が混在しているときは、

表示 →インデント設定 →「インデントをスペースに変換」にて、修正されます。

-

2. 80文字目に縦線を表示:

Python コミュニティでは 1行79文字に設定されているようです。

表示 →ルーラ →80文字 にチェック

→行で英字の35文字目に縦線が表示されるけど、これって不具合…?

Fedora 32 では正常でした。Manjaro 20.1.1 だとおかしいです。 これはフォントが指定されていないからでした。半角スペースの幅が(とても狭いのが)影響しています。 等幅フォントを指定する必要がありました。

-


3. 設定の登録:

  • 上記のやり方だと、設定したときに開いていたファイルだけが設定され記憶されます。 これから開くファイルに自動的に反映させるには下記の操作が必要です。

-

再起動

-

Default/Preferences.sublime-settings ファイルに書かれた設定を Users/Preferences.sublime-settings ファイルに書いた(追加の)設定で上書きできます。 欲しい機能だけ追記します。

-


基本設定 →基本設定 →Default とUsers の両方の設定ファイルが開きます。

「preferences.sublime-settings--Users」(Users フォルダにある設定ファイル):

{
  "ignored_packages":
  [
    "Vintage"
  ]
}

↓ 欲しい設定を追記(任意):

{
  "font_face": "DejaVu Sans Mono",
  "font_size": 10,
  "tab_size": 4,
  "draw_white_space": "all",  // スペースやタブを可視化
  "highlight_line": true,  // 現在行をハイライト
  "ignored_ packages":  // 一時的に無視するパッケージ
  [
    "Vintage"
  ],
  "indent_guide_options":  // 今いるインデントに縦線を表示
  [
    "draw_normal",
    "draw_active"
  ],
  "rulers":  // ルーラ(カンマ区切りで複数指定可能)等幅でない半角スペース: 80 なら210
  [
    80
  ],
  "translate_tabs_to_spaces": true,  // タブではなくスペースを使う
}

→追記するには、前の行の最後に「,」が必要でした。付けないとエラーします。

ルーラーの指定は半角スペースの数になり、そこで縦線が表示されます。 等幅フォントでないときは、縮んでしまうので、80 なら210 くらいにします。 等幅フォントを指定すれば解決できます。

「preferences.sublime-settings」で検索すると参考にできそうな設定がヒットします。 コメントも追記すると便利です。

参考:

// "font_face": "Ricty Diminished", // フォント

ちなみに、Python ファイル向けだと、

Packages/Python/Python.sublime-settings へ記述することあるようです。

-


確認も兼ねて、プログラムを作ってみます:

-

1. Python を置く作業フォルダ「python_work」を作成:

$ cd
$ mkdir python_work

Python で使うファイルやフォルダの名前は、小文字やスペースの代わりにアンダーバーを使うのが慣例みたい。

2. 「hello_world.py」プログラムを作成:

$ cd python_work/
$ subl hello_world.py

内容:

print("hello world !")

-

3. Sublime Text で「hello_world.py」プログラムを実行:

ツール →ビルド →Python

または、Ctrl+B →ウィンドウの下部に実行窓(ターミナル画面)が開きます。

hello world !
[Finished in 0.1s]

→Esc キーで閉じます。

もし、Python プログラムに重要なエラーがあるときは「トレースバック」(traceback) というエラー報告が表示されます。

-

4. ターミナルで「hello_world.py」プログラムを実行:

$ cd ~/python_work/
$ ls
hello_world.py

$ python hello_world.py
hello world !

-


まとめ

これで購入した学習本で使える、Python の学習環境が整いました。

どちらかというと「sublime text 3」についての記述が多くなりましたが、「sublime text」の良さを見直すよい機会になりました。軽くて、ハイライトが見やすく、実行もCtrl+B するだけと簡単です。

個人的には「sublime text 3」は「kernel 5.8」でも影響なく使えるのがありがたいです。

自分のPC でVS Code だと、カーネル更新(Fedora や Manjaro では多いこと)とか、アプリの更新(VS Code は1周間に1回ほどの更新あり)のたびに設定ファイルの修正 が必要です。

-

実際にPython の開発環境を整えるなら、投稿しているCenOS での Python 環境の構築には「仮想環境」がオススメ が参考になると思います。

仮想環境の「venv」を使うことで、Linux のシステムとして組み込まれているPython と分離でき、システムを汚さないで、pip(Python の拡張)が使えます。

-

-


目次

先頭

-


-