Linux あれこれ

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

CentOS 8.2 Xfce で、Python の仮想環境とsublime text 3 のインストール〈H96〉

登録日: 2020-11-16 更新日: 2020-11-16

前回、CentOS 8.2 にデスクトップ環境として、「Xfce 」をインストールしました。

-

以前、CentOS 8.2 のGNOMEPython 学習環境をインストールしたこと 、および、Manjaro XfcePython の学習環境を構築して、テキストエディタとして「sublime text 3」をインストールしたこと があるので、 それらを参考に、CentOS 8.2 にも同じ環境を構築してみました。

-

備忘録なので、役立ちそうな関連する情報も詰め込んでいます。 見づらいときは「参考:」とある部分は読み飛ばしてください。

-

「目次」

-

sublime text 3」の画面:

-


sublime text について:

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

-

利点:

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

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

  3. 起動すると以前開いていたタブ(開いていたファイル)が自動で開きます。

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

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

-

  • Sublime-text-4 も公開されていますが、実績のあるSublime-text-3 を選択。 Fedora 32 やCentOS でインストールできるように、ダウンロードしてインストールする手順を選びました。

-


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      573 11月  5 19:53 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 11月  5 19:50 /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
[Desktop Entry]
Version=1.0
Type=Application
Name=Sublime Text
GenericName=Text Editor
Comment=Sophisticated text editor for code, markup and prose
Exec=/opt/sublime_text_3/sublime_text %F
Terminal=false
MimeType=text/plain;
Icon=/opt/sublime_text_3/Icon/48x48/sublime-text.png
Categories=TextEditor;Development;
StartupNotify=true
Actions=Window;Document;

[Desktop Action Window]
Name=New Window
Exec=/opt/sublime_text_3/sublime_text -n
OnlyShowIn=Unity;

[Desktop Action Document]
Name=New File
Exec=/opt/sublime_text_3/sublime_text --command new_file
OnlyShowIn=Unity;

-

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 11月  5 19:54 /usr/share/applications/sublime_text.desktop

-

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

-

8. 日本語入力(ibus-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 ~/.config/sublime-text-3/Packages/
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'

$ cd ~/.config/sublime-text-3/Packages/
$ ls -1 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 -1 Default/
Context.sublime-menu
Encoding.sublime-menu
'Find in Files.sublime-menu'
Indentation.sublime-menu
'Line Endings.sublime-menu'
Main.sublime-menu
'Side Bar Mount Point.sublime-menu'
'Side Bar.sublime-menu'
Syntax.sublime-menu
'Tab Context.sublime-menu'
'Widget Context.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. Python がインストールされているかの確認

python 公式サイト

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

$ python
bash: python: コマンドが見つかりません

$ python3
Python 3.6.8 (default, Apr 16 2020, 01:36:27) 
[GCC 8.3.1 20191121 (Red Hat 8.3.1-5)] 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 で終了

CentOS に入っているのは「Python 3.6.8」でした。

-

$ whereis python
python: /usr/bin/python3.6 /usr/bin/python3.6m /usr/lib/python3.6 /usr/lib64/python3.6 /usr/include/python3.6m /usr/share/man/man1/python.1.gz

$ which python
/usr/bin/which: no python in (/home/ubn/.local/bin:/home/ubn/bin:/home/ubn/.local/bin:/home/ubn/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin)

$ which python3
/usr/bin/python3

→「python3」と入力しないと起動できません。

-

2. sublime-text が「python3」でプログラムを実行できるように設定:

  • 「python3」と入力しないと起動できないときは、設定ファイル(Python3-sublime-build) の作成が必要です。

→ビルドシステムのメニューに「Python3」を追加します。

-

Sublime Text 3 を起動

ツール→ビルドシステム→ビルドシステム追加

新しいタブが開くので、修正:

{
    "shell_cmd": "make"
}

↓ 修正:

{
    "cmd": ["python3", "-u", "$file"],
}

タブを閉じます→「保存」→名前: 「Python3.sublime-buils」→「保存」

-

設定ファイルの置き場所:

~/config/sublime-text-3/Packages/User/Python3.sublime-buils

-

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

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

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

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

-

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

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

-

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

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

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

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

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

-


5. 設定の登録:

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

-

再起動

-

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

-


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

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

{
  "ignored_packages":
  [
    "Vintage"
  ]
}

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

{
  //"font_face": "DejaVu Sans Mono",
  "font_face": "Source Han Code JP",  // フォント
  "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 くらいにします。

等幅フォントを指定するときは80 にします。 →今回は、「源ノ角ゴシック Code」フォント(Source Han Code JP) を指定しました。

  • 「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」プログラムを実行:

ツール→ビルドシステム→「Python3」を選択→「Python3」にチェックが付きます。

ツール →ビルド

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

hello world !
[Finished in 0.1s]

→Esc キーで閉じます。

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

ちなみに、ビルドシステムに「Python3」を選択していないときは、 [shell_cmd: python -u "/home/ubn/python_work/hello_world.py"] とだけ表示され、実行されません。 一度設定すれば、ツール →ビルド のみで実行できます。

-

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

$ cd ~/python_work/
$ ls
hello_world.py

$ python3 hello_world.py
hello world !

-


追記: サンプル「sample.py 」の実行で、html ファイルのタイトル部分が文字化け:

<!DOCTYPE html>
<html lang="ja">
<head>  
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>ãã­ã°ã©ãã³ã°è¨èª Python - python.jp</title>

→下記の対策があるけど、こちらのhtml ファイルはどちらもOK みたい。

-

html の title 要素の文字が文字化けする原因:

-

1. meta 要素の charset を指定していない

現在のHTML5 で推奨されているのは「UTF-8

HTML5 の場合:

    <meta charset="utf-8">

-

2. title 要素の後にcharset を指定している

title 要素の前に、meta 要素の charset を指定する(順番を変える):

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>ページのタイトル</title>
</head>

-

3. テキストエディタにより、文字コードを「UTF-8」にしたHTML ファイルとして保存

-

例えば、Mousepad:
    UTF-8
    ISO-2022-JP
    EUC-JP
    CP932 (Windows の Shift_JIS)

-

「LANG=C」にすると:
    UTF-8
    ISO-8859-1
    ISO-8859-15
    CP1252

-


Python 文字コードの宣言について

-

文字コードの宣言は、スペース位置を変えてはいけません。また、必ず 1行目か 2行目に書かなければなりません。

# coding: utf-8 

-

Python 2 の場合:

# coding: utf-8 

print(len('あいうえお'))   # 15
print(len(u'あいうえお'))  # 5

Python 2 の場合は、Unicode 文字列を指定すると、日本語の正しい長さが取得できています。 特に理由がない限り、ASCIIコード以外を使う場合は「Unicode 文字列」を利用したほうがよいです。

-

Python 3 の場合:

>>> # coding: utf-8
... 
>>> print(len('あいうえお'))   # 15
5
>>> print(len(u'あいうえお'))  # 5
5
>>> 

Python 3 の場合は、Unicode 文字列にしなくても、日本語の正しい長さが取得できています。

-


Sublime Text 3 に、日本語が文字化けした時のプラグインをインストール:

参考:

SublimeText3で日本語の文字化けした時の対処方法について (https://photo-tea.com/p/1805/sublimetext3-mojibake/)

Sublime text 3 では、Shift-JIS やEUC などのテキストファイルを開くと文字化けを起こします。 文字化けのときは、「ConvertToUTF8」と「Codecs33」の 2 種類のプラグインをインストールすると改善できる場合があります。

-

「ConvertToUTF8」プラグインをインストール

  1. Sublime text 3 を起動

  2. Ctrl+Shift+P で Package Control を起動

  3. Install と入力しPackage Control: Install Package を選択

  4. convertto と入力しConvertToUTF8 を選択

  5. Sublime text 3 を再起動

インストール完了後に、「Package Control Messages」タブが表示されます:

Package Control Messages
========================
  ConvertToUTF8
  ==================
  このプラグインを使用すると、特に GB2312、GBK、BIG5、EUC-KR、EUC-JP などのCJK ユーザーが使用している場合に、
現在SublimeText でサポートされていないエンコーディングのファイルを編集および保存できます。

  構成
  ------------------
  詳細については、ConvertToUTF8.sublime-settingsファイルを確認してください。
 「ユーザー」フォルダの下にある「ConvertToUTF8.sublime-settings」という名前のファイルに個人設定を保存する必要があります。
:

-

「Codecs33」プラグインをインストール

Codecs33 は、Package Control のInstall package 一覧にないので簡単にインストールできません。 SublimeText3 にCodecs33 を手動でインストールします。

1. Githubのブランチを開き、対応するOSを選択

seanliang/Codecs33

linux-x64

2. Zip ファイルをダウンロード

緑色の「Code」→「Download ZIP」→「ファイルを保存する」→OK

3. Zip ファイルを解凍してCodecs33 というフォルダに名前変更

「Codecs33-linux-x64.zip」を右クリック→「ここで展開」

「Codecs33-linux-x64」フォルダを右クリック→名前の変更→「Codecs33」

4. 基本設定→「Packages フォルダ…」で格納スべきフォルダを開きます。

→「~/.config/sublime-text-3/Packages/」が開きました。

$ ls ~/.config/sublime-text-3/Packages/
ConvertToUTF8  Default  Japanize  User

5. 項番 3の「Codecs33」フォルダーを項番 4で開いたフォルダーにコピー

$ ls ~/.config/sublime-text-3/Packages/
Codecs33  ConvertToUTF8  Default  Japanize  User

6. Sublime Text 3 を再起動

7. ファイルのメニューが増えました。

ファイル →Set File Encoding to 
ファイル →Reload with Encoding 

-


最新のPython をインストール

参考:

CentOS 環境のPython (https://www.python.jp/install/centos/index.html)

-

1. ビルドツールとライブラリのインストール:

$ sudo dnf groupinstall "development tools"
$ sudo dnf install bzip2-devel gdbm-devel libffi-devel libuuid-devel ncurses-devel openssl-devel readline-devel sqlite-devel tk-devel wget xz-devel zlib-devel

-

2. ソースコードのダウンロード:

Pythonの公式 downloadページ

  • 最新の安定版は、Python 3.9.0 ですが、よく使われている Python 3.8.6 を選びました。

Linux/UNIX」をクリック

Stable Releases

Python 3.8.6 - Sept. 24, 2020

Download XZ compressed source tarball

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

-

3. ダウンロードしたファイルを解凍:

$ cd ~/ダウンロード/
$ tar xJf Python-3.8.6.tar.xz

-

4. Pythonをビルドしてインストール:

$ cd Python-3.8.6/
$ ./configure
$ make
$ sudo make altinstall  ←(変更することで、python3 コマンドを使い分け)

警告が表示されました:

  WARNING: The script easy_install-3.8 is installed in '/usr/local/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  WARNING: The script pip3.8 is installed in '/usr/local/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.

→和訳:

警告:スクリプト easy_install-3.8 は、PATH 上にない '/usr/local/bin' にインストールされます。 このディレクトリをPATHに追加することを検討してください。

警告:スクリプト pip3.8 は、PATH上にない '/usr/local/bin' にインストールされます。 このディレクトリをPATHに追加することを検討してください。

-

ビルドしたコマンドは /usr/local/bin/ にインストールされます

インストール前:

$ ls /usr/local/bin/
xfce4-panel-profiles

インストール後:

$ ls /usr/local/bin/
2to3-3.8          idle3.8  pydoc3.8   python3.8-config
easy_install-3.8  pip3.8   python3.8  xfce4-panel-profiles

-

インストール時の「make install」で、python3 コマンドの使い分けができます

python3 コマンドで、既存の「Python 3.6」を起動したいとき:

$ sudo make altinstall

python3 コマンドで、新規の「Python 3.8」を起動したいとき:

$ sudo make install

→「$ sudo make altinstall」コマンドを使ってインストールすると、 Pythonのバージョンを指定して実行する python3.x コマンドはインストールされますが、 最後にインストールしたPythonを実行する python3 コマンドはインストールされません。

複数バージョンのPython を利用する場合は、python3 コマンドで実行したいバージョンのPython だけを「$ sudo make install」でインストール。それ以外のバージョンは「$ sudo make altinstall」でインストールします。

これにより、python3 コマンドでは主に使用するバージョンのPython を起動し、 それ以外のバージョンのPython は 「python3.8」のように、バージョンを指定して実行できます。

-

今回は、「$ sudo make altinstall」を使用:

$ python
bash: python: コマンドが見つかりません

$ python3
Python 3.6.8 (default, Apr 16 2020, 01:36:27) 
[GCC 8.3.1 20191121 (Red Hat 8.3.1-5)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

→「python3」で「Python 3.6.8」が起動されます。

$ pip3 --version
pip 9.0.3 from /usr/lib/python3.6/site-packages (python 3.6)

-

5. バージョン指定で起動できるかを確認:

$ python3.6
Python 3.6.8 (default, Apr 16 2020, 01:36:27) 
[GCC 8.3.1 20191121 (Red Hat 8.3.1-5)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

$ pip3.6 --version
pip 9.0.3 from /usr/lib/python3.6/site-packages (python 3.6)

$ python3.8
Python 3.8.6 (default, Nov 14 2020, 22:42:07) 
[GCC 8.3.1 20191121 (Red Hat 8.3.1-5)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

$ pip3.8 --version
pip 20.2.1 from /usr/local/lib/python3.8/site-packages/pip (python 3.8)

-

6. python 開発対象のプロジェクトを格納するディレクトリを作成:

$ cd
$ mkdir python_work

→ちなみに、このディレクトリ名は最近購入した学習本に記載のディレクトリ名です。学習しやすいかな。

-

7. プロジェクトディレクトリに「 sample.py」というプログラムを作成

$ cd ~/python_work/
$ subl sample.py

早速、「sublime text 3」 を使って、下記の内容を記述:

# coding: utf-8
import requests
print(requests.get("https://www.python.jp").text)

→Requests ライブラリを使用してWeb サイト(python.jp)から情報を取得します。

  • 使い方:

requests.get(url,オプション)

-

追記: 実行結果が日本語が文字化けするので、「 sample.py」を修正:

  • 実行させるとurl のページをhtml として取り込んでくれますが、タイトル部分等の日本語が文字化けします。

色々やって、違うurl を指定したら、うまく行きました。サイトの作りで結果が違うようです。

-

「 sample.py」を修正:

# coding: utf-8
import requests
# print(requests.get("https://www.python.jp").text)
print(requests.get("https://news.yahoo.co.jp/").text)

→url の部分を「"https://news.yahoo.co.jp/"」にしました。 ニュースサイトなので、ページの作りが全然違います。

データが大きいので、ファイルにリダイレクトしたほうが結果が見やすいです:

$ python3 sample.py > test.txt
$ less test.txt

もしくは、「Sublime Text 3」でCtrl+B とやって、実行してもよいです。コンソールエリアはスクロールして確認できますし、幅も全画面にして広く使えます。

-


Python のバージョンを指定した仮想環境:

Python で開発をしていると、パッケージの依存関係があったり、それぞれのバージョン違いによる問題も出てきます。 複数のバージョンの Python をインストールしている環境では、使用する Python を指定して仮想環境を作成できます。 2つの仮想環境を用意しておけば、簡単に「Python3.6」と「Python3.8」を切り替えて使えます。

-

1. Python 3.6 の仮想環境の作成:

$ cd ~/python_work/
$ python3.6 -m venv .venv36

-

Python 3.6 の仮想環境の使用:

$ cd ~/python_work/
$ source .venv36/bin/activate
(.venv36) $

(.venv36) $ python3
Python 3.6.8 (default, Apr 16 2020, 01:36:27) 
[GCC 8.3.1 20191121 (Red Hat 8.3.1-5)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

→「source」の代わりに「.」が使えます。

コマンドプロンプトの先頭に (.venv36) と表示され、仮想環境で実行中であることを示します。

-

2. Python 3.8 の仮想環境の作成:

$ cd ~/python_work/
$ python3.8 -m venv .venv38

-

Python 3.8 の仮想環境の使用:

$ cd ~/python_work/
$ source .venv38/bin/activate
(.venv38) $

(.venv38) $ python3
Python 3.8.6 (default, Nov 14 2020, 22:42:07) 
[GCC 8.3.1 20191121 (Red Hat 8.3.1-5)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

→「source」の代わりに「.」が使えます。

コマンドプロンプトの先頭に (.venv38) と表示され、仮想環境で実行中であることを示します。

-

3. 作成した「 sample.py」プログラムの実行:

(.venv38) $ python3 sample.py
Traceback (most recent call last):
  File "sample.py", line 1, in <module>
    import requests
ModuleNotFoundError: No module named 'requests'

→エラーします。 requests モジュール は、Python 標準のモジュールではなく、別途インストールが必要です。

-

4. Python パッケージのインストール

pip は、「PyPIThe Python Package Index に公開されているPython パッケージのインストールなどを行うユーティリティで、Python に標準で付属しています。

仮想環境を使用中に pip モジュールでPyPI からパッケージをインストールすると、仮想環境にインストールされます。

-

sample.py で使っている、requests モジュールをpip でインストール:

(.venv38) $ python3 -m pip install requests
:
Installing collected packages: certifi, chardet, urllib3, idna, requests
Successfully installed certifi-2020.11.8 chardet-3.0.4 idna-2.10 requests-2.25.0 urllib3-1.26.2
:
WARNING: You are using pip version 20.2.1; however, version 20.2.4 is available.
You should consider upgrading via the '/home/ubn/python_work/.venv38/bin/python3 -m pip install --upgrade pip' command.

→5つのモジュールがインストールされました。

pip 20.2.4 へのバージョンアップが必要との警告が表示されました。

-

5. pip のバージョンアップ:

(.venv38) $ python3 -m pip install --upgrade pip
Collecting pip
  Using cached pip-20.2.4-py2.py3-none-any.whl (1.5 MB)
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 20.2.1
    Uninstalling pip-20.2.1:
      Successfully uninstalled pip-20.2.1
Successfully installed pip-20.2.4

-

6. インストール済でインストールするとどうなるか、requests モジュールをpip でインストール:

$ python3 -m pip install requests
Requirement already satisfied: requests in ./.venv38/lib/python3.8/site-packages (2.25.0)
Requirement already satisfied: chardet<4,>=3.0.2 in ./.venv38/lib/python3.8/site-packages (from requests) (3.0.4)
Requirement already satisfied: idna<3,>=2.5 in ./.venv38/lib/python3.8/site-packages (from requests) (2.10)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in ./.venv38/lib/python3.8/site-packages (from requests) (1.26.2)
Requirement already satisfied: certifi>=2017.4.17 in ./.venv38/lib/python3.8/site-packages (from requests) (2020.11.8)

→要件はすでに満たされています: と表示

インストールしたモジュールは、仮想環境内にのみ書き込まれ、元の Pythonや、他の仮想環境からは利用できません。

-

7. sample.py を実行:

(.venv) $ python3 sample.py
<!DOCTYPE html>
<html lang="ja">
<head>
  
  
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>ãã­ã°ã©ãã³ã°è¨èª Python - python.jp</title>
:
</body>
</html>
^[[?62;c^[[?62;c^[[?62;c^[[?62;c(.venv38) $ 62;c62;c62;c62;c

→html ファイルが表示されました。一部文字化けしています。お尻部分がプロンプトと混ざってしまっています。

-

ファイルに出力してブラウザで確認:

(.venv38) $ python3 sample.py > test.html

<head>
    <meta charset="utf-8">
    <title>ãã­ã°ã©ãã³ã°è¨èª Python - python.jp</title>
:

→コーディング指定も入っているし、ブラウザで開く前に、エディタで文字化けしているので、いつもとは違うみたい。 正常に表示できるかはわからないけど、あとで「sublime text 3」にプラグインを入れる ことにしました。

-

8. 違うPCでも開発したり、複数人のチームで開発したりする時

共有する場合、仮想環境(.venv ディレクトリ) をコピーして共有するのではなく、 仮想環境にインストールされているパッケージの一覧を作成して、みんなで共有します。

-

パッケージの一覧(任意のファイル)の作成:

(.venv38) $ cd ~/python_work/
(.venv38) $ python3 -m pip freeze > requirements.txt

(.venv38) $ cat requirements.txt
certifi==2020.11.8
chardet==3.0.4
idna==2.10
requests==2.25.0
urllib3==1.26.2

-

作成した 「requirements.txt」ファイルは、ソースコードと一緒にgit などに登録して一元管理します。

新しく仮想環境を作成したり、「requirements.txt 」に新しいパッケージを追加したときには、次のコマンドで一括して仮想環境にパッケージをインストールします。

-

パッケージの一覧「requirements.txt」から一括して仮想環境にパッケージをインストール:

(.venv38) $ python3 -m pip install -r requirements.txt

Requirement already satisfied: certifi==2020.11.8 in ./.venv38/lib/python3.8/site-packages (from -r requirements.txt (line 1)) (2020.11.8)
Requirement already satisfied: chardet==3.0.4 in ./.venv38/lib/python3.8/site-packages (from -r requirements.txt (line 2)) (3.0.4)
Requirement already satisfied: idna==2.10 in ./.venv38/lib/python3.8/site-packages (from -r requirements.txt (line 3)) (2.10)
Requirement already satisfied: requests==2.25.0 in ./.venv38/lib/python3.8/site-packages (from -r requirements.txt (line 4)) (2.25.0)
Requirement already satisfied: urllib3==1.26.2 in ./.venv38/lib/python3.8/site-packages (from -r requirements.txt (line 5)) (1.26.2)

→インストール済だけど、再インストールしてみました。どこかで見たメッセージ(要件はすでに満たされています: )です。

-

これを見るとパッケージは、「./.venv38/lib/python3.8/site-packages/」に落ちているみたい。

(.venv38) $ ls -1 ./.venv38/lib/python3.8/site-packages/
__pycache__
certifi
certifi-2020.11.8.dist-info
chardet
chardet-3.0.4.dist-info
easy_install.py
idna
idna-2.10.dist-info
pip
pip-20.2.4.dist-info
pkg_resources
requests
requests-2.25.0.dist-info
setuptools
setuptools-49.2.1.dist-info
urllib3
urllib3-1.26.2.dist-info

-

(.venv38) $ pip list
Package    Version
---------- ---------
certifi    2020.11.8
chardet    3.0.4
idna       2.10
pip        20.2.4
requests   2.25.0
setuptools 49.2.1
urllib3    1.26.2

-

9. 仮想環境の終了:

(.venv38) $ deactivate
$

仮想環境を終了すると、先程インストールした「requests」モジュールは使えなくなります。

-


10. 参考: Python の仮想環境を作るソフトウェア:

  • Python3.3 以前は、「virtualenv」(サードパーティ製)

  • Python3.3 以降は、「venv」(標準パッケージとしてvirtualenv がPython に取り込まれました)

-

11. 参考: venv のヘルプ表示(和訳):

$ /usr/bin/python3 -m venv --help

使用法: venv [-h] [--system-site-packages] [--symlinks | --copies] [--clear]
            [--upgrade] [--without-pip] [--prompt PROMPT]
            ENV_DIR [ENV_DIR ...]

1つ以上のターゲットディレクトリに仮想 Python 環境を作成します。

位置引数:
  ENV_DIR               環境を作成するディレクトリ

オプションの引数:
  -h, --help
                        このヘルプメッセージを表示して終了
  --system-site-packages
                        仮想環境にシステムのsite-packages ディレクトリへ
                        のアクセス権を付与します。
  --symlinks
                        シンボリックリンクがプラットフォームのデフォルトで
                        はない場合は、コピーではなくシンボリックリンクを
                        使用してください。
  --copies
                        シンボリックリンクがプラットフォームのデフォルトで
                        ある場合でも、シンボリックリンクではなくコピーを
                        使用してください。
  --clear
                        環境を作成する前に、環境ディレクトリがすでに
                        存在する場合は、その内容を削除してください。
  --upgrade
                        Python がin-place でアップグレードされていることを
                        前提として、このバージョンのPython を使用するよう
                        に環境ディレクトリをアップグレードします。
  --without-pip
                        仮想環境でのpipのインストールまたはアップグレード
                        をスキップします。
                        (pipはデフォルトでブートストラップされます)
  --prompt PROMPT
                        この環境の代替プロンプト文字を提供します。

環境が作成されたら、binディレクトリのactivate スクリプトにて、
有効化することができます。

-

12. 参考: ファイル構成:

→指定した仮想環境名の「 .venv38」フォルダが作られます。

$ cd ~/python_work/
$ ls -a
.  ..  .venv36  .venv38  hello_world.py  requirements.txt  sample.py  test.html

$ ls .venv38/
bin  include  lib  lib64  pyvenv.cfg

$ ls .venv38/bin
Activate.ps1  activate.fish  easy_install-3.8  pip3.8   python3.8
activate      chardetect     pip               python
activate.csh  easy_install   pip3              python3

python コマンドを含めた、すべてのファイルが仮想環境のフォルダ配下につくられました。 Python バイナリのコピーまたはシンボリックリンクを含む bin サブディレクトリが作られました。

$ ls .venv38/lib/python3.8/
site-packages

$ ls .venv38/lib/python3.8/site-packages/
__pycache__                  idna                  requests-2.25.0.dist-info
certifi                      idna-2.10.dist-info   setuptools
certifi-2020.11.8.dist-info  pip                   setuptools-49.2.1.dist-info
chardet                      pip-20.2.4.dist-info  urllib3
chardet-3.0.4.dist-info      pkg_resources         urllib3-1.26.2.dist-info
easy_install.py              requests

→「site-packages」フォルダは重要です。最初は空の状態で作成されます。もし、指定したディレクトリが存在している場合は、それが再利用されます。最初は、2つのパッケージ(pip、setuptools )が入っており、その後、増えていきます。

-

参考: 仮想環境の設定ファイルの確認:

$ cat .venv38/pyvenv.cfg
home = /usr/local/bin
include-system-site-packages = false
version = 3.8.6

→「pyvenv.cfg」ファイルの home キーはこのコマンドを呼び出した Python のインストール場所を指します。 よく使われるターゲットディレクトリの名前は「.venv」らしいです。

-

実際に仮想環境でアプリをインストールしてみます

-

1. python3.8 の仮想環境を有効化:

$ cd ~/python_work/
$ source .venv38/bin/activate
(.venv38)$ 

確認:

(.venv38) $ echo $PATH
/home/ubn/python_work/.venv38/bin:/home/ubn/.local/bin:/home/ubn/bin:/home/ubn/.local/bin:/home/ubn/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin

→先頭に仮想環境のパスが追加されてます。

(.venv38) $ which python
~/python_work/.venv38/bin/python
(.venv38) $ which python3
~/python_work/.venv38/bin/python3
(.venv38) $ which python3.8
~/python_work/.venv38/bin/python3.8

(.venv38) $ python --version
Python 3.8.6
(.venv38) $ python3 --version
Python 3.8.6
(.venv38) $ python3.8 --version
Python 3.8.6

(.venv38)$ pip --version
pip 20.2.4 from /home/ubn/python_work/.venv38/lib/python3.8/site-packages/pip (python 3.8)
(.venv38)$ pip3 --version
pip 20.2.4 from /home/ubn/python_work/.venv38/lib/python3.8/site-packages/pip (python 3.8)

(.venv38) $ pip show pip
Name: pip
Version: 20.2.4
Summary: The PyPA recommended tool for installing Python packages.
Home-page: https://pip.pypa.io/
Author: The pip developers
Author-email: distutils-sig@python.org
License: MIT
Location: /home/ubn/python_work/.venv38/lib/python3.8/site-packages
Requires: 
Required-by: 

→仮想環境の python と pip が使われます。

現在のパッケージのインストール状態:

(.venv38) $ pip list
Package    Version
---------- ---------
certifi    2020.11.8
chardet    3.0.4
idna       2.10
pip        20.2.4
requests   2.25.0
setuptools 49.2.1
urllib3    1.26.2

→いくつかのパッケージが入っています。

-


2. python3.8 の仮想環境で「thonny」をインストール:

構文チェックできるPython のエディタです。最近の「ラズパイOS」には、このアプリが入っているみたい。

最初の起動時に「Standard」か「Raspberry Pi」を選びます。

参考:

Pythonで書いたソースコードの実行の流れを実況中継してくれる初心者のための学習ツール「Thonny!」

-

tkinter が動作することを確認:

  • tkinter がインストールされていないと実行できません。
(.venv38) $ python -m tkinter

小さなtkinter のダイアログが表示されれば、準備 OK:

→「QUIT」

-

もし、インストールされていないときは:

(.venv38) $ sudo dnf install python3-tkinter
:
インストール済みパッケージ
python3-tkinter.x86_64                  3.6.8-23.el8                  @AppStream

-

python3.8 で、thonny をインストール:

(.venv38) $ pip install thonny

-

確認:

(.venv38)$ which thonny
~/python_work/.venv38/bin/thonny

-

thonny の実行:

(.venv38)$ thonny
日本語  [ALPHA]

-

ダイアログ表示で、日本語を選択

-

thonny の画面:

  • プログラムファイルの実行を行うと端末上に警告が出ます:
WARNING: MyPy: /home/ubn/python_work/.venv38/lib/python3.8/site-packages is in the MYPYPATH. Please remove it.
See https://mypy.readthedocs.io/en/latest/running_mypy.html#how-mypy-handles-imports for more info

→動作に支障はありません。

-

和訳:

警告: MyPy: /home/ubn/python_work/.venv38/lib/python3.8/site-packages はMYPYPATHにあります。取り外してください。 詳細については「https://mypy.readthedocs.io/en/latest/running_mypy.html#how-mypy-handles-imports」を参照してください。

-

表示→「アシスタント」→「アシスタント」タブを表示:

→構文エラーがあったときに詳細を説明してくれます。ただし、英文。

ワザと文字列のくくりの文字を2つ入れてエラーさせた画面です。右側に、タブ切り替えでいろいろな情報が表示できます。

-

表示→「メモ」→「メモ」タブを表示:

「メモ」タブに書いた情報を保持してくれます。これは便利。

-

初期設定:

表示→「アシスタント」

表示→「メモ」

書かれているメモ書きを消してから、下記を記述:

== Python 3.8.6  ==
(.venv38) で使用:
$ cd ~/python_work/
$ source .venv38/bin/activate

抜けるとき:
(.venv38)$ deactivate
---

-

CentOS 8.2 Xfce の「thonny」は日本語入力できません

上記の日本語は他からの貼付けです。

-

「thonny」のインストールでインストールされたパッケージを確認:
(.venv38) $ pip list
Package           Version
----------------- ---------
astroid           2.4.2
asttokens         2.0.4
certifi           2020.11.8
chardet           3.0.4
docutils          0.16
idna              2.10
isort             5.6.4
jedi              0.17.2
lazy-object-proxy 1.4.3
mccabe            0.6.1
mypy              0.790
mypy-extensions   0.4.3
parso             0.7.1
pip               20.2.4
pylint            2.6.0
pyserial          3.4
requests          2.25.0
Send2Trash        1.5.0
setuptools        49.2.1
six               1.15.0
thonny            3.2.7
toml              0.10.2
typed-ast         1.4.1
typing-extensions 3.7.4.3
urllib3           1.26.2
wrapt             1.12.1

→「thonny」のインストールでこんなに増えました。

-


3. python3.8 の仮想環境で「mu-editor」をインストール:

シンプルなPython のエディタです。文字が大きいので見やすいです。

このアプリは、「BBC micro:bit」や「Adafruit 組み込みボード」の開発でよく使われているようです。 「モード」ボタンで簡単に開発環境が切り替えできます。 「チェック」ボタンで構文チェックできます。

-

pip が最新であることを確認:

  • pip が最新でないと、インストールに失敗します。
(.venv38) $ pip --version
pip 20.2.4 from /home/ubn/python_work/.venv38/lib/python3.8/site-packages/pip (python 3.8)

(.venv38) $ pip list

→警告が出なければ 最新です。

-

もし、pip をアップグレードするときは:

(.venv38) $ python3 -m pip install --upgrade pip

→仮想環境なので安心してアップグレードできます。

-

mu-editor のインストール:

(.venv38) $ pip install mu-editor

-

エラー(1回目):
    Hunting dependencies...
    WARNING: "sdl-config" failed!
    Unable to run "sdl-config". Please make sure a development version of SDL is installed.

対応:

  • SDL の開発バージョンが必要:
$ sudo dnf install SDL-devel

-

エラー(2回目):
    Hunting dependencies...
    SDL     : found 1.2.15
    FONT    : not found
    IMAGE   : not found
    MIXER   : not found
    PNG     : found
    JPEG    : not found
    SCRAP   : found
    PORTMIDI: not found
    PORTTIME: not found
    FREETYPE: found 22.1.16
    Missing dependencies

対応:

  • pygame 2.0.0.dev6 にすると良いとの情報:
(.venv38)$ pip install pygame==2.0.0.dev6
:
Successfully installed pygame-2.0.0.dev6

(.venv38) $ python
Python 3.8.6 (default, Nov 14 2020, 22:42:07) 
[GCC 8.3.1 20191121 (Red Hat 8.3.1-5)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

>>> import pygame
pygame 2.0.0.dev6 (SDL 2.0.10, python 3.8.6)
Hello from the pygame community. https://www.pygame.org/contribute.html
>>> 

→「python」コマンドで、「import pygame」と入力し、エラーが表示されなければ 良いみたい。そこまではできました。

-

エラー(3回目):

2回目のエラーと同じで変化なし。依存がいっぱいありそう。

-

現時点では: 「mu-editor」で使われる「Pygame」はPython 3.7までしか互換性がなく、Python 3.8 では互換性がなく動かない

上記のことがネット検索でわかりました。

  • 「mu-editor」をインストールするには、python 3.6 か 3.7 が必要です。

CentOS 8.2 は、デフォルトで Python 3.6 なので、3.6 にインストールすれば使えます。

-

あきらめて、仮想環境を終了:

(.venv38) $ deactivate
$

-

誤って追加したパッケージを削除:

$ sudo dnf remove SDL-devel

-


4. python3.6 の仮想環境を有効化:

$ cd ~/python_work/
$ source .venv36/bin/activate
(.venv36) $

(.venv36) $ python3 --version
Python 3.6.8

(.venv36) $ pip --version
pip 9.0.3 from /home/ubn/python_work/.venv36/lib64/python3.6/site-packages (python 3.6)

-

pip の確認:

(.venv36)$ pip list
DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
pip (9.0.3)
setuptools (39.2.0)
You are using pip version 9.0.3, however version 20.2.4 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

→pip のバージョンアップの警告が表示されました。

-

pip のバージョンアップ:

(.venv36) $ python3 -m pip install --upgrade pip
Cache entry deserialization failed, entry ignored
Collecting pip
  Using cached https://files.pythonhosted.org/packages/cb/28/91f26bd088ce8e22169032100d4260614fc3da435025ff389ef1d396a433/pip-20.2.4-py2.py3-none-any.whl
Installing collected packages: pip
  Found existing installation: pip 9.0.3
    Uninstalling pip-9.0.3:
      Successfully uninstalled pip-9.0.3
Successfully installed pip-20.2.4

確認:

(.venv36)$ pip list
Package    Version
---------- -------
pip        20.2.4
setuptools 39.2.0

(.venv36) $ pip --version
pip 20.2.4 from /home/ubn/python_work/.venv36/lib64/python3.6/site-packages/pip (python 3.6)

→pip で何もインストールしていない状態は、パッケージが 2つ。

-


5. python3.6 の仮想環境で「mu-editor」をインストール:

(.venv36)$ pip install mu-editor

→今までの苦労は何だったのか?、依存を入れなくてもすんなり、インストールできました。

-

mu-editor の実行:

(.venv36)$ mu-editor
ログ出力先: /home/ubn/.cache/mu/log/mu.log

→ちゃんと動作します。ログの落ちるファイルは、以前ホームのローカルにインストールしたことのある mu-editor と一緒でした。

  • ちなみに、ホームに専用のフォルダが作成されます。

~/mu_code/

  • 開いているファイルとか、モード等は下記の設定ファイルに保持されます。

~/.local/share/mu/session.json

-

最初の起動時に表示されるモードの選択画面:

→左上の「モード」ボタンでいつでも表示して切り替えできます。

mu-editor は、モード切り替えで、開発対象にするマシンを簡単に選べるのが利点。つまり、これらのマシンのエミュレータ機能を持っています。同じ python でのプログラム開発でも違うわけです。

通常のパソコンで使うときは一番下を選択。

-

mu-editor の画面:

→「チェック」ボタンで、構文チェックをしてくれます。ウィンドウの左下のバーにやさしい日本語で返答が表示されます。 毎回押すたびに言葉づかいが変わります。「やさしい日本語」なのがポイントかな。

-

インストールされたパッケージの確認:

(.venv36)$ pip list
Package          Version
---------------- ---------
appdirs          1.4.4
backcall         0.2.0
certifi          2020.11.8
chardet          3.0.4
colorzero        1.1
cycler           0.10.0
decorator        4.4.2
gpiozero         1.5.1
guizero          1.1.0
idna             2.10
ipykernel        5.3.4
ipython          7.16.1
ipython-genutils 0.2.0
jedi             0.17.2
jupyter-client   6.1.7
jupyter-core     4.6.3
kiwisolver       1.3.1
matplotlib       2.2.2
mu-editor        1.0.3
nudatus          0.0.4
numpy            1.19.4
parso            0.7.1
pexpect          4.8.0
pgzero           1.2
pickleshare      0.7.5
pigpio           1.78
Pillow           8.0.1
pip              20.2.4
prompt-toolkit   3.0.8
ptyprocess       0.6.0
pycodestyle      2.4.0
pyflakes         2.0.0
pygame           1.9.6
Pygments         2.7.2
pyparsing        2.4.7
PyQt5            5.14.1
PyQt5-sip        12.8.1
PyQtChart        5.14.0
pyserial         3.4
python-dateutil  2.8.1
pytz             2020.4
pyzmq            20.0.0
QScintilla       2.11.4
qtconsole        4.3.1
requests         2.25.0
semver           2.13.0
setuptools       39.2.0
six              1.15.0
tornado          6.1
traitlets        4.3.3
urllib3          1.26.2
wcwidth          0.2.5

→「mu-editor」のアプリを追加しただけで、こんなに増えました。

可能性は低いけど、もしかしたら、このリストにあるパッケージをPython 3.8 で入れれば、「mu-editor」がインストールできるかもしれません。

置き場所の確認:

(.venv36) $ whereis mu-editor
mu-editor: /home/ubn/python_work/.venv36/bin/mu-editor

(.venv36)$ which mu-editor
~/python_work/.venv36/bin/mu-editor

-


6. python3.6 で「thonny」をインストール:

-

tkinter が動作することを確認:

(.venv36) $ python -m tkinter

小さなtkinter のダイアログが表示されれば、準備 OK:

→「QUIT」

-

thonny のインストール:

(.venv36) $ pip install thonny

-

確認:

(.venv36)$ which thonny
~/python_work/.venv36/bin/thonny

-

thonny の実行:

(.venv36) $ thonny
INFO    thonny: Thonny version: 3.3.0
日本語  [ALPHA]

-

ダイアログ表示で、日本語を選択

-

thonny の画面:

-

初期設定:

表示→「アシスタント」

表示→「メモ」

書かれているメモ書きを消してから、下記を記述:

== Python 3.6.8  ==
(.venv36) で使用:
$ cd ~/python_work/
$ source .venv36/bin/activate

抜けるとき:
(.venv36)$ deactivate
---

-

CentOS 8.2 Xfce の「thonny」は日本語入力できません

上記の日本語は他からの貼付けです。

-


7. 仮想環境の無効化:

(.venv36)$ deactivate
$ 

→仮想環境から抜けました。

-


パスを指定すれば、仮想環境にインストールされたアプリも実行できます:

$ ~/python_work/.venv36/bin/mu-editor

→ちゃんと動作します。

-


1. 「.venv36」で使う「thonny」のデスクトップファイルを作成

$ sudo mousepad /usr/share/applications/thonny.desktop

↓ 下記の内容を記述:

[Desktop Entry]
Name=thonny
Name[ja]=thonny(.venv36で使用)
GenericName=Text Editor
Comment=Python Text Editor
Comment[ja]=Python 用のエディタ
Exec=/home/ubn/python_work/.venv36/bin/thonny
Icon=/home/ubn/python_work/.venv36/share/jupyter/kernels/python3/logo-32x32.png
MimeType=text/plain;
Terminal=false
Type=Application
Categories=TextEditor;Development;

-


2. 「.venv38」で使う「thonny」のデスクトップファイルを作成

$ sudo mousepad /usr/share/applications/thonny2.desktop

↓ 下記の内容を記述:

[Desktop Entry]
Name=thonny2
Name[ja]=thonny(.venv38で使用)
GenericName=Text Editor
Comment=Python Text Editor
Comment[ja]=Python 用のエディタ
Exec=/home/ubn/python_work/.venv38/bin/thonny
Icon=/home/ubn/python_work/.venv36/share/jupyter/kernels/python3/logo-32x32.png
MimeType=text/plain;
Terminal=false
Type=Application
Categories=TextEditor;Development;

-


3. 「.venv36」で使う「mu-editor」のデスクトップファイルを作成

$ sudo mousepad /usr/share/applications/mu-editor.desktop

↓ 下記の内容を記述:

[Desktop Entry]
Name=Mu editor
Name[ja]=Mu editor(.venv36で使用)
GenericName=Text Editor
Comment=Python Text Editor
Comment[ja]=Python 3.6用のエディタ
Exec=/home/ubn/python_work/.venv36/bin/mu-editor
Icon=/home/ubn/python_work/.venv36/share/jupyter/kernels/python3/logo-32x32.png
MimeType=text/plain;
Terminal=false
Type=Application
Categories=TextEditor;Development;

-


4. 再起動にて、メニューに登録されたか動作を確認。

→仮想環境にインストールしたアプリなので、プログラム開発時にパッケージのインポートがあると、その環境にしないと問題が出るかもしれません。

両方の仮想環境に「thonny」をインストール。バージョンごとに選択するようにしました。

メニューのアプリ名にはバージョンを入れ、エディタ側も「メモ」タブ表示で、仮想環境の入り方や抜け方、および「Python 3.8 仮想環境で使用」とかの注意を記述しました。この「メモ」機能は使えますね。

-


まとめ

sublime text 3」は「kernel 5.8」でも影響なく使えるのが個人的にはありがたいです。 「sublime text 3」は軽くて、ハイライトが見やすく、Python の実行もCtrl+B するだけと簡単です。

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

ただし、まさか、Python のバージョンの違いでインストールできないアプリ(mu-editor)があるとは知りませんでした。 色々ありますね。

これで、Python の学習環境が整いました。

参考まで。

-

-


目次

先頭

-


-