登録日: 2020-11-16 更新日: 2020-11-16
前回、CentOS 8.2 にデスクトップ環境として、「Xfce 」をインストールしました。
-
以前、CentOS 8.2 のGNOME にPython 学習環境をインストールしたこと 、および、Manjaro Xfce にPython の学習環境を構築して、テキストエディタとして「sublime text 3」をインストールしたこと があるので、 それらを参考に、CentOS 8.2 にも同じ環境を構築してみました。
-
備忘録なので、役立ちそうな関連する情報も詰め込んでいます。 見づらいときは「参考:」とある部分は読み飛ばしてください。
-
-
「sublime text 3」の画面:
-
sublime text について:
Subulime Text(サブライムテキスト)はPython で書かれた多機能なエディタです。 有料です。未登録だとウィンドウのタイトルバーに(UNREGISTERED) が付いたり、時々ポップアップが表示されますが、無料で全機能が使えます。感謝。
-
利点:
ファイルを開くには少し待たされますが、編集やスクロールは軽いのでストレスがありません。
gedit で削除されたマップ表示のスクロールバーが表示されます。
起動すると以前開いていたタブ(開いていたファイル)が自動で開きます。
「kernel 5.8」でも影響なく使えます。 自分のPC だとATOM やVS Code だと「ハードウェアアクセレータをオフ 」にして起動しないと、デスクトップが固まります。
最新版では、通常の入力メソッドの設定をするだけで日本語入力できます。余計なパッケージのインストールは不要です。
-
- 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」をインストール
-
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 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 の場合:
<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」プラグインをインストール
Sublime text 3 を起動
Ctrl+Shift+P で Package Control を起動
Install と入力しPackage Control: Install Package を選択
convertto と入力しConvertToUTF8 を選択
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を選択
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. ソースコードのダウンロード:
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 は、「PyPI」 The 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 の仮想環境を作るソフトウェア:
-
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 するだけと簡単です。
CentOS でPython の開発環境を構築するときは、仮想環境の「venv」を使うことで、Linux のシステムとして組み込まれているPython と分離でき、システムを汚さないで、気楽に pip(Python の拡張)が使えます。
ただし、まさか、Python のバージョンの違いでインストールできないアプリ(mu-editor)があるとは知りませんでした。 色々ありますね。
これで、Python の学習環境が整いました。
参考まで。
-
-
目次
- 「sublime text 3」の画面:
- sublime text について:
- sublime-text のインストール:
- Sublime Text に「Package Control」をインストール
- Python 用にSublime Text 3 を設定:
- 確認も兼ねて、プログラムを作ってみます:
- 追記: サンプル「sample.py 」の実行で、html ファイルのタイトル部分が文字化け:
- Python 文字コードの宣言について
- Sublime Text 3 に、日本語が文字化けした時のプラグインをインストール:
- 最新のPython をインストール
- Python のバージョンを指定した仮想環境:
- 1. Python 3.6 の仮想環境の作成:
- 2. Python 3.8 の仮想環境の作成:
- 3. 作成した「 sample.py」プログラムの実行:
- 4. Python パッケージのインストール
- 5. pip のバージョンアップ:
- 6. インストール済でインストールするとどうなるか、requests モジュールをpip でインストール:
- 7. sample.py を実行:
- 8. 違うPCでも開発したり、複数人のチームで開発したりする時
- 9. 仮想環境の終了:
- 10. 参考: Python の仮想環境を作るソフトウェア:
- 11. 参考: venv のヘルプ表示(和訳):
- 12. 参考: ファイル構成:
- 実際に仮想環境でアプリをインストールしてみます
- パスを指定すれば、仮想環境にインストールされたアプリも実行できます:
-
-