Linux あれこれ

Linux 関連の備忘録です。

CentOS 8.2 のGNOME にPython 学習環境をインストール〈H83〉

登録日: 2020-07-28 更新日: 2020-07-28

前回は、最新の「CentOS」である「CentOS-8.2.2004」をUSB メモリにインストール して、GNOME デスクトップ環境をインストール しました。

今回は、そこに「 Python の学習環境 」を構築してみました。おかげで、Python の仮想環境についても勉強できました。 これで、小さなプログラムを作成しながら、学習できると思います。ゆくゆくはPython の開発ができるといいですね。

-

「目次」

-

GNOME デスクトップ:

-

参考:

CentOS wiki

Red Hat 社が商用 Linux の「RHEL」のソースを公開しています。そのソースを使い、「CentOS Project」コミュニティが商標部分を取り除いてビルドし直した Linux ディストリビューションが、CentOSセントオーエス)です。 商用のRHEL と機能的に高い互換性を持ちます。

つまり、無料でありながら、商用OS の品質があります

ただし、ミラーサイトや、リポジトリなどは違うので、インストールできるアプリに制限があります 。 サーバーでの使用がメインなので、必然的にデスクトップで使うアプリは少なくなります。しかたないことかな。

-


前回 からの続きです。

CentOS を起動します。

-

ブート選択のメニュー:

CentOS Linux (4.18.0-193.6.3.e18_2.x86_64) 8 (Core) 
CentOS Linux (4.18.0-193.e18.x86_64) 8 (Core) 
CentOS Linux (0-rescue-) 8 (Core) 

3秒待ち

-


ログイン画面

パスワードを入れて、ログイン

-


デスクトップ画面が表示されます

-


CentOS に、Fedora 提供の「epel」リポジトリを追加

  • 前回この作業は完了しています。(念の為に記載)

Fedora で検証された高品質のパッケージを RHELCentOS のような互換ディストリビューションでも使えるようにしたのが「epel」リポジトリです。 Fedora のすべてのパッケージが登録されているわけではありませんが、インストールできる可能性が高くなります。

CentOS では、「epel-release」のインストールで「epel」リポジトリが使えるようになります。

-

epel を追加:

$ sudo dnf install epel-release

$ sudo dnf update

-


Python が使える環境にします:

Python の利点は、「パッケージ化された機能の再利用が簡単」なこと、「いろいろな機能のパッケージを無料で簡単に手に入れられる」ことです。これによりプログラミングの省力化ができるので人気があります。

-

まずは、Python の初期設定を見直します。

参考:

Red Hat Enterprise Linux 8 のPython事情

CentOS 8.2 にて確認:

$ cat /etc/centos-release
CentOS Linux release 8.2.2004 (Core) 

$ cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core)

抜粋:

  • RHEL 8 のデフォルトでは「python」コマンドは存在せず、「python3」コマンドがあります。

  • 意見が半々だったので、ユーザの事情にあわせて「python」コマンドを python2 または python3 に設定できるように、定義なしになっています。

  • pythonスクリプト#!/usr/bin/python のような記述は #!/usr/bin/python3 のように変更することが推奨されます。

  • RHEL 8 の最小インストールでは「python3」コマンドが含まれず、システムツールで使われる /usr/libexec/platform-python (no-python) がありますが、ユーザ利用は推奨されません。

  • 設定方法は下記。詳細は man python(1) を参照:

-

alternatives コマンドにて、シンボリックリンクを操作して設定します

- 対話的に設定: alternatives --config python

- Python 3 に設定: alternatives --set python /usr/bin/python3

- Python 2 に設定: alternatives --set python /usr/bin/python2

- デフォルトに戻す: alternatives --auto

-

python がインストールされているか確認:

$ python3 --version
Python 3.6.8

$ python --version
bash: python: コマンドが見つかりませんでした...

→Python3 はインストールされていますが、リンクされてません。

-

pip がインストールされているか確認:

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

$ pip --version
bash: pip: コマンドが見つかりませんでした...

→pip3 はインストールされていますが、リンクされてません。

-


python でpython3 を呼び出せるようにします:

バージョンの切り替えは、「--config」を使用すると対話形式で選択できます。

バージョンの切り替え:

$ sudo alternatives --config python
:
2 プログラムがあり 'python' を提供します。

  選択       コマンド
-----------------------------------------------
*+ 1           /usr/libexec/no-python
   2           /usr/bin/python3

→「2」を入力して、Enter

-

確認:

$ python --version
Python 3.6.8

-


pip でpip3 を呼び出せるようにします:

参考:

How to change pip3 command to be pip?

→依存関係を維持しながら、使用するバージョンを登録できます

-

Linuxの場合:

$ sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1

-

バージョンの切り替え:

$ sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1

確認:

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

-

alternativesでのステータス、優先度などを確認:

$ alternatives --display python

python - ステータスは手動です。
リンクは現在 /usr/bin/python3 を指しています。

/usr/libexec/no-python - priority 404
 スレーブ unversioned-python: (null)
 スレーブ unversioned-python-man: /usr/share/man/man1/unversioned-python.1.gz

/usr/bin/python3 - priority 300
 スレーブ unversioned-python: /usr/bin/python3
 スレーブ unversioned-python-man: /usr/share/man/man1/python3.1.gz
現在の「最適」バージョンは /usr/libexec/no-python です。

-

$ alternatives --display pip

pip -ステータスは自動です。
リンクは現在 /usr/bin/pip3 を指しています。

/usr/bin/pip3 - priority 1
現在の「最適」バージョンは /usr/bin/pip3 です。

-

実際のシンボリックリンクの確認:

$ ls -l /etc/alternatives/python
lrwxrwxrwx. 1 root root 16  7月 24 02:53 /etc/alternatives/python -> /usr/bin/python3

$ ls -l /etc/alternatives/pip
lrwxrwxrwx. 1 root root 13  7月 24 02:57 /etc/alternatives/pip -> /usr/bin/pip3

→/etc/alternatives/ にリンクが置かれて、バージョン管理されてます

-


端末にて、プログラムを実行してみます:

$ python
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.
>>> 

プロンプトに入力:

>>> print("Hello world!")
Hello world!

→Enter キーですぐに実行されます。 昔流行ったBasic インタプリタみたいな使い方です。

-

終了:

>>> exit()
$ 

→Ctrl+D でも終了できます。

-


プログラムファイルを作成して実行してみます:

フォルダを作成:

$ cd
$ mkdir code

-

プログラムファイルを作成

$ nano ~/code/hello.py

↓ 下記を入力:

print("Hello world!")

→nano の操作は、Ctrl+O で保存、Ctrl+X で閉じます。

-

実行:

$ cd ~/code/
$ python hello.py

Hello world!

-


pip について

「pip」は 、Python で書かれたパッケージ(外部のライブラリ)をインストールするときに使うツールです。 Python 本体に同梱されてます。

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

→pip はとても古いバージョンでした。

-

ヘルプ表示(和訳と抜粋):

$ pip --help

Usage:   
  pip <command> [options]

Commands:
  install         パッケージをインストール
  download        パッケージをダウンロード
  uninstall       パッケージをアンインストール
  freeze          インストールされたパッケージを要件の形式で出力
  list            インストールされているパッケージを一覧表示
  show            インストールされているパッケージに関する情報を表示
  check           インストールされたパッケージに互換性のある依存関係があることを確認
  search          PyPI リポジトリにてパッケージを検索
  wheel           要件からwheel を構築
  hash            パッケージアーカイブのハッシュを計算
  completion      コマンド補完に使用されるヘルパーコマンド
  help            コマンドのヘルプを表示

-

ポイントは、「pip のアップグレードは仮想環境で行うこと」です

  • もし、pip を使ってアプリのインストールをするなら、後半に書いた「仮想環境」で作業するのがオススメです

仮想環境を作ってインストールすれば、システムと干渉しないので問題の発生が少なくなります。 完全に分離されているので、問題があっても仮想環境名のフォルダを削除するだけで済みます。

-

これ以降の記事は、システムが汚れるので、本番のシステムではやらない方が無難です。

「どのような問題が出るのか」の参考にしてください。

-

Python の環境の構築は、後半に書いた「仮想環境」を使った作業をオススメします

-


「Thonny」のインストール

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

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

-

pip でthonny を検索:

$ pip search thonny
:
thonny (3.2.7)                       - Python IDE for beginners

-

pip でインストールします:

$ pip install --user thonny

→pip では、システムファイルを上書きしないために「sudo」は禁止されてます。 「--user」を付けてユーザのホームにインストールすることが推奨です。何かあっても安心です。

$ whereis thonny
thonny: /home/ubn/.local/bin/thonny

-

pip でインストールの確認:

$ pip show thonny

Name: thonny
Version: 3.2.7
Summary: Python IDE for beginners
Home-page: https://thonny.org
Author: Aivar Annamaa and others
Author-email: thonny@googlegroups.com
License: MIT
Location: /home/ubn/.local/lib/python3.6/site-packages
Requires: astroid, asttokens, pylint, docutils, setuptools, jedi, mypy, pyserial, Send2Trash

-

thonny の実行:

$ thonny
:
ModuleNotFoundError: No module named 'tkinter'

→エラーしました。モジュールが不足しているみたい:

-

検索:

$ dnf search tkinter
:
python3-tkinter.x86_64 : A GUI toolkit for Python
python38-tkinter.x86_64 : A GUI toolkit for Python

-

tkinter モジュールのインストール

$ sudo dnf install python3-tkinter
:
インストール済み:
  python3-tkinter-3.6.8-23.el8.x86_64    
  tk-1:8.6.8-1.el8.x86_64
  tcl-1:8.6.8-2.el8.x86_64

-

tkinter モジュールの動作確認:

$ python -m tkinter

↓(「python -m」: path がないときは最新が選ばれます。)

      tk

This is Tcl/Tk version 8.6
This should be a cedilla: c

   [Click me!]
      [Quit]

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

-

thonny の再実行:

$ thonny

「Th」の選択ダイアログが開きました

Langage: English →日本語 [ALPHA]

Initial settings: Standard 

(Standard 以外にラズパイが選べます)

→「Let's go!」をクリック

「Thonny」が起動され、ウィンドウが表示されました。

ファイルを開いて、プログラムを実行してみます

ファイル→Open... →「code」フォルダ→hello.py

「実行」ボタンを押してみます。

-

上の「hello.py」タブ

print("Hello world!")

-

下の「Shell」タブ

Python 3.6.8 (/usr/bin/python3.6)
>>> %cd /home/ubn/code
>>> %Run hello.py
Hello world!
>>> 

→プロンプトは紫、その他はグレー。 実行結果の「Hello world!」は黒で表示されるので、わかりやすいです。

わざと後ろに余分な文字「 " 」を加え、間違えて、実行してみました:

→誤ったところを色を変えて、ちゃんと指摘してくれます。

-

参考: pip でthonny を削除するとき:

$ pip uninstall thonny
:
Proceed (y/n)? y
  Successfully uninstalled thonny-3.2.7

-


「Mu-editor」のインストール

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

-

pip でmu を検索:

$ pip search mu
:
mu-editor (1.0.3)          - A simple Python editor for beginner programmers.

-

pip でインストールします:

$ pip install --user mu-editor
:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/usr/lib64/python3.6/tokenize.py", line 452, in open
        buffer = _builtin_open(filename, 'rb')
    FileNotFoundError: [Errno 2] No such file or directory: '/tmp/pip-build-g2lty3mg/PyQtChart/setup.py'
 
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-g2lty3mg/PyQtChart/

警告が出てインストールできなかったので、検索すると 「pipを最新バージョンにアップグレードすると、この問題は解決しました。」がヒット

-

pipを最新バージョンにアップグレード: ←(これが失敗の元。仮想環境を使うべきでした)

$ pip install --user --upgrade pip
:
Successfully installed pip-20.1.1

→これは通常は、やってはいけないことだったみたい。これ以降、pip 操作すると警告が表示されるようになりました。 (ホームなら分離されているので、個人的にこうなることを理解してやるのはかまわないと思います。簡単にアップできます。でも、sudo は禁止)

$ pip --version

WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
pip 20.1.1 from /home/ubn/.local/lib/python3.6/site-packages/pip (python 3.6)

警告:pip は古いスクリプトラッパーによって呼び出されています。これは、pip の新しいバージョンでは失敗します。 根本的な問題の修正にについては、https://github.com/pypa/pip/issues/5599 を参照してください。

この問題を回避するには、pip を直接実行しないで、Python を '-m pip' を使って呼び出します。 /home/ubn/.local/lib/python3.6/site-packages/pip からの pip 20.1.1(python 3.6)

→新しくホームに新バージョンの pip をインストールしたことで、システムにあった旧バージョンの pip と重複したとの警告です。これはバグではなくて、運用のしかたの誤りで起きたこと。

ImportError in system pip wrappers after an upgrade #5599 を参照

pip の新しいバージョンが必要な場合は、仮想環境などを使用して、システムパッケージとは別にインストールする必要があります。このバグは仮想環境を使用していないときにpip のアップグレードをすると発生します。

python -m pip --version 」のように実行すれば、Python が認識しているpip のインストールの正確なバージョンと場所がわかり、一時的に回避できます。本来は、仮想環境を使うべきでした。

$ which pip
~/.local/bin/pip

$ which pip3
~/.local/bin/pip3

$ whereis pip
pip: /usr/bin/pip /usr/bin/pip3.6 /home/ubn/.local/bin/pip /home/ubn/.local/bin/pip3.6

$ whereis pip3
pip3: /usr/bin/pip3.6 /usr/bin/pip3 /home/ubn/.local/bin/pip3.6 /home/ubn/.local/bin/pip3 /usr/share/man/man1/pip3.1.gz

参考: システムの pip :

$ dnf search python-pip
:
platform-python-pip.noarch : A tool for installing and managing Python3 packages

$ dnf list platform-python-pip
:
インストール済みパッケージ
platform-python-pip.noarch                9.0.3-16.el8                 @anaconda

-

回避するには、pip を下記のように使います:

$ python -m pip <command> [options]

→「python -m」: path がないときは最新が選ばれます。

-

このやり方で、バージョン表示:

$ python -m pip --version
pip 20.1.1 from /home/ubn/.local/lib/python3.6/site-packages/pip (python 3.6)

→バージョンがすごく上がってます。

-

このやり方で、インストール:

$ python -m pip install --user mu-editor

インストールやアップグレードのときは「--user」は必ず付けます。

→うまくインストールできました

-

このやり方で、インストールの確認:

$ python -m pip show mu-editor
:
Version: 1.0.3
Summary: A simple Python editor for beginner programmers.
Home-page: https://github.com/mu-editor/mu
Author: Nicholas H.Tollervey
Author-email: ntoll@ntoll.org
License: GPL3
Location: /home/ubn/.local/lib/python3.6/site-packages

-

mu-editor の起動:

$ mu-editor
:
ログ出力先: /home/ubn/.cache/mu/log/mu.log
Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.

Python のプログラムファイルを実行させたタイミングで、Qt アプリでバージョン表示したときと同じようなエラーが表示されます。

-

→スッキリとした画面です。タイトルバーにある数字は、アプリのバージョンです。

-

参考: PyPI のライブラリにて、更新があるかの確認:

-

パッケージに更新があるかの確認:

$ python -m pip list --outdated

Package           Version    Latest   Type
----------------- ---------- -------- -----
asn1crypto        0.24.0     1.3.0    wheel
blivet            3.1.0      3.2.2    wheel
cffi              1.11.5     1.14.0   wheel
coverage          4.5.1      5.2.1    wheel
cryptography      2.3        3.0      wheel
dbus-python       1.2.4      1.2.16   sdist
decorator         4.2.1      4.4.2    wheel
idna              2.5        2.10     wheel
iniparse          0.4        0.5      wheel
isort             4.3.21     5.1.4    wheel
langtable         0.0.38     0.0.51   wheel
lazy-object-proxy 1.4.3      1.5.1    wheel
Mako              1.0.6.dev0 1.1.3    wheel
MarkupSafe        0.23       1.1.1    wheel
matplotlib        2.2.2      3.3.0    wheel
netifaces         0.10.6     0.10.9   wheel
ntplib            0.3.3      0.3.4    wheel
ordered-set       2.0.2      4.0.2    sdist
pid               2.1.1      3.0.4    wheel
ply               3.9        3.11     wheel
productmd         1.11       1.26     wheel
pycairo           1.16.3     1.19.1   sdist
pycodestyle       2.4.0      2.6.0    wheel
pycparser         2.14       2.20     wheel
pycups            1.9.72     2.0.1    sdist
pycurl            7.43.0.2   7.43.0.5 sdist
pyflakes          2.0.0      2.2.0    wheel
pygobject         3.28.3     3.36.1   sdist
pykickstart       3.16.10    3.20     sdist
pyOpenSSL         18.0.0     19.1.0   wheel
pyparted          3.11.0     3.11.6   sdist
PyQt5             5.14.1     5.15.0   wheel
PyQtChart         5.14.0     5.15.0   wheel
PySocks           1.6.8      1.7.1    wheel
python-dateutil   2.6.1      2.8.1    wheel
pytz              2017.2     2020.1   wheel
pyudev            0.21.0     0.22.0   sdist
pyxdg             0.25       0.26     wheel
PyYAML            3.12       5.3.1    sdist
QScintilla        2.11.4     2.11.5   wheel
qtconsole         4.3.1      4.7.5    wheel
requests          2.20.0     2.24.0   wheel
requests-file     1.4.3      1.5.1    wheel
setuptools        39.2.0     49.2.0   wheel
simpleline        1.1        1.7      wheel
slip              0.6.4      20191113 sdist
urllib3           1.24.2     1.25.10  wheel

→最新のバージョンがインストールされているパッケージ(ライブラリ)は表示されません。

-

パッケージの更新のやり方:

$ python -m pip install --user --upgrade パッケージ名

-

インストールされているパッケージの一覧:

$ python -m pip list

Package              Version
-------------------- ----------
appdirs              1.4.4
asn1crypto           0.24.0
:
pip                  20.1.1
:
wrapt                1.12.1

-

参考: PyPI について

Python のプログラミング(プログラムの作成)では、欲しい機能はライブラリを活用、なるべく自分で作らずに省力化するやり方を取ります。基本的な機能は標準ライブラリにありますが、ない場合には外部から探して、あれば使います。

  • PyPI (Python Package Index) は、Python のライブラリを無料公開している最大のリポジトリ(配布元)です。

  • PyPI からライブラリをインストールするには、pip(The Python Package Installer)と呼ばれるパッケージ管理ツールを使うことで、インターネットを経由したインストールが簡単にできます。

  • pip はpython インタープリタからは単なるモジュール(Python のプログラムファイル)です。

  • Python の実行環境に外部ライブラリをインストールすると、標準ライブラリのパッケージと同じようにプログラムを作るときに、インポートして利用できます。

  • インストールするライブラリが、他のライブラリを利用している場合、つまり依存関係が発生するときがあります。 配布元が管理していれば、pip はライブラリの依存関係を管理する仕組み(site-packagesフォルダに落ちます)があり、ライブラリの依存関係を気にせずに使えます。

  • パッケージのダウンロード先の指定で、ローカルフォルダや git、PyPI 以外のパッケージ配布元からパッケージをインストールできます。省略するとPyPI からパッケージを取得します。

-

参考:

Pythonで作成したライブラリを、PyPIに公開/アップロードする

-


Visual Studio Code のインストール

人気の「VSCode」をインストールしてみました。

Visual Studio Code(略して VSCode )は、マイクロソフトが開発したオープンソース(MITライセンスでライセンス)のテキストエディタです。IDEの機能(統合デバッガー、コード補完、リンティングなど)もあります。独自のEULA の下でライセンスされています。

公式ビルドには追加の機能があり、VSCode マーケットプレイスから拡張機能ギャラリーを介して拡張機能をインストールできます。

-

参考:

Fedora wiki: Visual Studio Code

公式のインストール手順

1. CentOS にて、キーとリポジトリを追加:

$ sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc

$ sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo'

2. パッケージキャッシュを更新、dnf でパッケージをインストール:

$ sudo dnf check-update
Visual Studio Code              364 kB/s | 5.0 MB     00:14

$ sudo dnf install code
:
インストール済み:
  code-1.47.2-1594838045.el7.x86_64

-

3. Visual Studio Code の日本語化:

参考:

Visual Studio Codeを日本語化する「一番良い」方法は?【 全OS共通 】【 2020年最新版 】

1. Visual Studio Codeを起動

2. メニューの「View → Command Palete...」を開きます。

3. 「Configure Display Language」をクリック

4. 「Install additional languages...」をクリック

5. 左側に言語のリストが表示されます。「日本語」を探してクリックし、右の「Install」をクリック

6. 右下にリスタートを促すメッセージが表示されます。「Restart Now」をクリック

7. アプリが再起動され、日本語で表示されます。

→最初なので「ようこそ」タブが開かれています。

-

4. 「Python 拡張機能」のインストール:

事前に作成したプログラムファイルが役に立ちます。

-

1. ファイル→ファイルを開く→「code」フォルダ→「hello.py」→開く

新しいタブでファイルが開かれます→画面右下に下記が表示されます。

このファイル種類には、'Python' 拡張機能をお勧めします。

→「インストール」をクリック

2. 「Python拡張機能がインストールされます。

3. 右下に、2つのダイアログが表示されているので、上側から確認

-

確認しておきます:

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

「Select Python Interpreter」をクリック

Enter interpreter path...

- Python 3.6.8 64-bit (/usr/bin/python) ←こちらを選択

- Python 3.6.8 64-bit (/bin/python)

→ウィンドウの左下に「Python 3.6.8 64-bit 」が表示されました。

-

4. 次のダイアログが開きました。

Linter pylint is not installed.

→「Install」をクリック

-

5. もうひとつのダイアログも確認

Tips: you can change the Python interpreter used by the Python extension by clicking on the Python version in the status bar

和訳:

ヒント:ステータスバーのPythonバージョンをクリックして、Python拡張機能で使用されるPythonインタープリタを変更できます。

→「Got it !」(了解)をクリック

-

5. 編集の続き

左上の「エクスプローラー」アイコン→フォルダーを開く→「code」フォルダ→hello.py →先ほどの編集画面が開きます。

もう一度「エクスプローラー」アイコンを押すと広くなります。

-

Python - Get Started」タブが開きました。

-

6. Python の実行

「実行」→「デバッグなしで実行」→画面下のエリアに「ターミナル」画面表示

[ubn@localhost code]$  env /usr/bin/python /home/ubn/.vscode/extensions/ms-python.python-2020.7.94776/pythonFiles/lib/python/debugpy/launcher 36691 -- /home/ubn/code/hello.py 
Hello World
[ubn@localhost code]$ 

「ターミナル」画面の右上の「x」で閉じます。

-

7. 通常のエディタとしても優秀です

CentOS の(全体の map 表示ができる旧バージョンの)gedit とほとんど同じ見た目。ファイル表示は gedit よりも早いかも。

-


Python 環境の構築には「仮想環境」がオススメ

-

仮想環境とは

参考:

venv --- 仮想環境の作成

Python で開発をしていると、パッケージの依存関係があったり、それぞれのバージョン違いによる問題も出てきます。

Python の仮想環境は、「システム」の Python、すなわち OS の一部としてインストールされた Python にインストールされている全てのライブラリとは別です。

仮想環境は、追加でインストールしたモジュールやパッケージ、またPython のバージョンごとに分離されています。

それぞれの仮想環境には、それ自身に (この仮想環境を作成するのに使ったバイナリのバージョンに合った) Python バイナリがあり、仮想環境ごとの site ディレクトリに独立した Python パッケージ群をインストールできます。

仮想環境を作ってソフトウェアごとにバージョンの違うパッケージを用意すると、同じシステム内の環境を汚すこと無く開発が出来ます。

-

Python の仮想環境を作るソフトウェアは数種類あります。

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

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

-

参考:

Python3.6ビルドとvenv環境構築

この記事は:

デフォルトでインストールされている Python に影響を与えないよう、任意の場所(/opt/)に Python3.6 をインストール。この Python3.6 を使って、venv 環境を構築しています。

-

上記の記事を参考に作業しました。 別のバージョンをインストールするわけではありませんが、使い方の参考になります。

-


1. 事前の確認:

重要:

venv 環境を作成するときに使う python3.6 コマンドは、その環境で使うためにインストールした インストール先にあるPython3.6 を指定する必要があります。この環境が仮想環境名のフォルダ配下にコピーされます。

-

使用したいバージョンのpython3 の場所を確認:
$ which python3

/usr/bin/python3
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 スクリプトにて、
有効化することができます。

-

2. venv で仮想環境を作成:

名前を「venv36」としてホームディレクトリ直下に作成しました。

作成前のファイル構成の確認:
$ ls ~/
code     ダウンロード  デスクトップ  ビデオ  画像
mu_code  テンプレート  ドキュメント  音楽    公開

-

仮想環境の「venv36」を作成:
$ cd ~/.         ←(最初に設定しておくことが重要)
$ /usr/bin/python3 -m venv venv36

-

仮想環境のファイル構成の確認:
$ ls
code     venv36        テンプレート  ドキュメント  音楽  公開
mu_code  ダウンロード  デスクトップ  ビデオ        画像

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

$ ls ~/venv36/
bin  include  lib  lib64  pyvenv.cfg

$ ls ~/venv36/bin/
activate      activate.fish  easy_install-3.6  pip3    python
activate.csh  easy_install   pip               pip3.6  python3

$ ls ~/venv36/include/

$ ls ~/venv36/lib/
python3.6

$ ls ~/venv36/lib/
python3.6

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

$ ls ~/venv36/lib/python3.6/
site-packages

$ ls ~/venv36/lib/python3.6/site-packages/
__pycache__      pip-9.0.3.dist-info  setuptools-39.2.0.dist-info
easy_install.py  pkg_resources
pip              setuptools

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

-

仮想環境の設定ファイルの確認:
$ cat ~/venv36/pyvenv.cfg
home = /usr/bin
include-system-site-packages = false
version = 3.6.8

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

-

有効化に使われるスクリプトを確認:
$ ls -l ~/venv36/bin/activate
-rw-r--r--. 1 ubn ubn 2196  7月 27 13:51 /home/ubn/venv36/bin/activate

$ cat ~/venv36/bin/activate
# This file must be used with "source bin/activate" *from bash*
# you cannot run it directly
:

→和訳: bashの場合は「source bin/activate」として使います。 直接実行はできません

-

3. 仮想環境の有効化

venv の仮想環境を有効化すると、プロンプトに仮想環境名 (venv36) が表示されます。

この状態で、pip コマンドなどでパッケージをインストールすると、この仮想環境の中でのみ有効なパッケージとしてインストールされます。

  • OS 標準の環境や、他のvenv 環境には影響を与えません。

-

bash/zsh の場合:
[ubn@localhost ~]$ source ~/venv36/bin/activate

(venv36) [ubn@localhost ~]$ 

→有効化には、仮想環境名の「~/venv36/」ディレクトリをパスの最初に加えます。 venv で仮想環境が有効化されると、プロンプトの先頭に (venv36) が表示されます。

python」で仮想環境の Python インタプリタが呼び出されます。また、フルパスを入力せずにインストールされたスクリプトが実行できるようになります。

-

仮想環境の python と pip の置き場所:
(venv36) [ubn@localhost ~]$ which python3
~/venv36/bin/python3

(venv36) [ubn@localhost ~]$ which python
~/venv36/bin/python

(venv36) [ubn@localhost ~]$ which pip3
~/venv36/bin/pip3

(venv36) [ubn@localhost ~]$ which pip
~/venv36/bin/pip

-

仮想環境の python と pip のバージョンを確認:
(venv36) [ubn@localhost ~]$ python3 --version
Python 3.6.8

(venv36) [ubn@localhost ~]$ python --version
Python 3.6.8

(venv36) [ubn@localhost ~]$ pip3 --version
pip 9.0.3 from /home/ubn/venv36/lib64/python3.6/site-packages (python 3.6)

(venv36) [ubn@localhost ~]$ pip --version
pip 9.0.3 from /home/ubn/venv36/lib64/python3.6/site-packages (python 3.6)

-

仮想環境の pip の確認:
(venv36) [ubn@localhost ~]$ pip show pip

Name: pip
Version: 9.0.3
Summary: The PyPA recommended tool for installing Python packages.
Home-page: https://pip.pypa.io/
Author: The pip developers
Author-email: python-virtualenv@groups.google.com
License: MIT
Location: /home/ubn/venv36/lib/python3.6/site-packages  ←(置き場所)

Requires: 
You are using pip version 9.0.3, however version 20.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

→pip をバージョンアップしろと警告が表示されます。

-

仮想環境の pip のバージョンアップ:
(venv36) [ubn@localhost ~]$ pip install --upgrade pip
Cache entry deserialization failed, entry ignored
Collecting pip
  Using cached https://files.pythonhosted.org/packages/43/84/23ed6a1796480a6f1a2d38f2802901d078266bda38388954d01d3f2e821d/pip-20.1.1-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.1.1

確認:

(venv36) [ubn@localhost ~]$ pip show pip
Name: pip
Version: 20.1.1
Summary: The PyPA recommended tool for installing Python packages.
Home-page: https://pip.pypa.io/
Author: The pip developers
Author-email: pypa-dev@groups.google.com
License: MIT
Location: /home/ubn/venv36/lib/python3.6/site-packages  ←(置き場所)
Requires: 
Required-by: 

→警告は出なくなりました。

-

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

→pip のバージョンが上がりました。

-

置き場所の確認:
$ ls ~/venv36/lib/python3.6/site-packages/
__pycache__      pip-20.1.1.dist-info  setuptools-39.2.0.dist-info
easy_install.py  pkg_resources
pip              setuptools

-

作成した仮想環境にインストールされているパッケージの確認:
(venv36) [ubn@localhost ~]$ which pip
~/venv36/bin/pip

(venv36) [ubn@localhost ~]$ pip freeze
(venv36) [ubn@localhost ~]$

(venv36) [ubn@localhost ~]$ pip list
Package    Version
---------- -------
pip        20.1.1
setuptools 39.2.0

(venv36) [ubn@localhost ~]$ pip show pip
Name: pip
Version: 20.1.1
Summary: The PyPA recommended tool for installing Python packages.
Home-page: https://pip.pypa.io/
Author: The pip developers
Author-email: pypa-dev@groups.google.com
License: MIT
Location: /home/ubn/venv36/lib/python3.6/site-packages
Requires: 
Required-by: 

-

4. 仮想環境でのパッケージのインストール:

(venv36) [ubn@localhost ~]$ pip install パッケージ名

→実際のインストール作業は後ほど書きます。

-

5. 仮想環境の無効化

(venv36) [ubn@localhost ~]$ deactivate
[ubn@localhost ~]$ 

仮想環境を抜けたか確認:

[ubn@localhost ~]$ which python3
/usr/bin/python3

[ubn@localhost ~]$ python --version
Python 3.6.8

→仮想環境名である (venv36) が表示されなくなり、 仮想環境から抜けたことがわかります。

-

仮想環境を作成する前は、

$ pip --version

WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
pip 20.1.1 from /home/ubn/.local/lib/python3.6/site-packages/pip (python 3.6)

→仮想環境を作らずに作業した影響で、pip がシステムの旧 とホームの新 とで重複しているとの警告が出てました。

この状態で、pip を使うには、最新を選んでくれるように下記の操作が必要です。

$ python -m pip --version
pip 20.1.1 from /home/ubn/.local/lib/python3.6/site-packages/pip (python 3.6)

インストールのときは:

$ python -m pip install --user mu-editor

→少し面倒です。

-

仮想環境を作成した後から、警告が回避できるようになりました

仮想環境から抜けた状態:

$ which python3
/usr/bin/python3

$ which pip3
~/.local/bin/pip3

$ which pip
~/.local/bin/pip

→pip だけ、置き場所がホーム (--user 指定で作られた ~/.local/bin/pip) に変わっています(仮想環境ではありません)。

-

$ pip --version
pip 20.1.1 from /home/ubn/.local/lib/python3.6/site-packages/pip (python 3.6)

→通常のコマンドの使い方で実行できるようになりました。

この場合でも、インストールのときは下記の操作が必要です:

$ pip install --user mu-editor

→「--user」を付けて、ホームに落とします。付けないと推奨されていないシステムに落とそうとして失敗します。 仮想環境の場合は、仮想環境のフォルダに落ちるので、この気使いは要りません。

-

パスなどを再確認:

$ whereis mu-editor
mu-editor: /home/ubn/.local/bin/mu-editor

$ which mu-editor
~/.local/bin/mu-editor

$ whereis pip3
pip3: /usr/bin/pip3.6 /usr/bin/pip3 /home/ubn/.local/bin/pip3.6 /home/ubn/.local/bin/pip3 /usr/share/man/man1/pip3.1.gz

$ which pip3
~/.local/bin/pip3

-

$ echo $PATH
/home/ubn/.local/bin:/home/ubn/bin:/home/ubn/.local/bin:/home/ubn/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin

↓ 見やすくすると:

/home/ubn/.local/bin:
/home/ubn/bin:

/home/ubn/.local/bin:
/home/ubn/bin:

/usr/local/bin:
/usr/local/sbin:
/usr/bin:
/usr/sbin

→いつの間にかパスが張られていました。でも、先頭が重複しています。 こちらには仮想環境のディレクトリは含まれていません。

-

スタートアップファイルを確認:

$ cat ~/.bashrc

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi

# User specific environment
PATH="$HOME/.local/bin:$HOME/bin:$PATH"  ←(パス指定はここ)
export PATH                ←(パス指定はここ)

# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=

# User specific aliases and functions

-

$ ls -l ~/.bashrc
-rw-r--r--. 1 ubn ubn 312 11月  9  2019 /home/ubn/.bashrc

→日付は古いのでスタートアップファイルは修正されていませんね。最初からホームのパスは設定されていたみたい。

パスの指定は関係なかったみたい。先頭が重複しているのは、違うファイルでもパス指定されている可能性があります。

$ cat .bash_profile

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

# User specific environment and startup programs
export LANG=ja_JP.UTF-8

-

$ ls -l ~/.bash_profile
-rw-r--r--. 1 ubn ubn 165  7月 22 12:33 /home/ubn/.bash_profile

→日本語化のときに修正しただけでこれは関係なし。システム側の設定ファイルで指定されているのかも。

-

  • どちらにしても、仮想環境のインストールで「重複の警告表示」が解消されました。

レビューにあった「仮想環境のインストールで解消されます」というのは、仮想環境を使うということだけでなく、この効果も指していたのかな。

-

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

$ which python
/usr/bin/python

$ which pip
~/.local/bin/pip

→これが仮想環境に入る前の状態です。pip はホームのローカル指定に変わってます。

1. 仮想環境を有効化します

$ source ~/venv36/bin/activate

(venv36) [ubn@localhost ~]$ 

(venv36) [ubn@localhost ~]$ which python
~/venv36/bin/python

(venv36) [ubn@localhost ~]$ which pip
~/venv36/bin/pip

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

-

(venv36) [ubn@localhost ~]$ pip list
Package    Version
---------- -------
pip        20.1.1
setuptools 39.2.0

→2つのパッケージだけが入っています。

-

(venv36) [ubn@localhost ~]$ pip --version
pip 20.1.1 from /home/ubn/venv36/lib64/python3.6/site-packages/pip (python 3.6)

→仮想環境のpip が使われています。

-

(venv36) [ubn@localhost ~]$ echo $PATH
/home/ubn/venv36/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

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

-


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

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

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

参考:

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

-

  • tkinter がインストールされていないと実行できません。
tkinter がインストールされていることを確認:
(venv36) [ubn@localhost ~]$ dnf list python3-tkinter
:
インストール済みパッケージ
python3-tkinter.x86_64                  3.6.8-23.el8                  @AppStream
tkinter が動作することを確認:
$ python -m tkinter

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

-

thonny のインストール:
(venv36) [ubn@localhost ~]$ pip install thonny

-

確認:

(venv36) [ubn@localhost ~]$ whereis thonny
thonny: /home/ubn/venv36/bin/thonny /home/ubn/.local/bin/thonny

(venv36) [ubn@localhost ~]$ which thonny
~/venv36/bin/thonny

-

thonny の実行:
(venv36) [ubn@localhost ~]$ thonny
日本語  [ALPHA]
WARNING:thonny:MyPy: /home/ubn/venv36/lib64/python3.6/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

→起動にて、ダイアログが表示されるので、日本語選択します。 プログラムファイルの実行をかけると相変わらず警告が出ます。

-

thonny の画面:

→右側の画面は、タブ切り替えでいろいろな情報が表示できます。この「アシスタント」タブは構文エラーがあったときに詳細を説明してくれます。ただし、英文。

-

(venv36) [ubn@localhost ~]$ pip list
Package           Version
----------------- -------
astroid           2.4.2
asttokens         2.0.4
docutils          0.16
isort             4.3.21
jedi              0.17.2
lazy-object-proxy 1.4.3
mccabe            0.6.1
mypy              0.782
mypy-extensions   0.4.3
parso             0.7.1
pip               20.1.1
pylint            2.5.3
pyserial          3.4
Send2Trash        1.5.0
setuptools        39.2.0
six               1.15.0
thonny            3.2.7
toml              0.10.1
typed-ast         1.4.1
typing-extensions 3.7.4.2
wrapt             1.12.1

→2つだけが、「thonny」のインストールでこんなに増えました。

-


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

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

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

-

  • pip が最新でないと、インストールに失敗します。
pip が最新であることを確認:
(venv36) [ubn@localhost ~]$ pip --version
pip 20.1.1 from /home/ubn/venv36/lib64/python3.6/site-packages/pip (python 3.6)

-

もし、pip をアップグレードするときは:
(venv36) [ubn@localhost ~]$ pip install --upgrade pip

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

-

mu-editor のインストール:
(venv36) [ubn@localhost ~]$ pip install mu-editor

-

確認:

(venv36) [ubn@localhost ~]$ whereis mu-editor
mu-editor: /home/ubn/venv36/bin/mu-editor /home/ubn/.local/bin/mu-editor

(venv36) [ubn@localhost ~]$ which mu-editor
~/venv36/bin/mu-editor

-

mu-editor の実行:
(venv36) [ubn@localhost ~]$ mu-editor
ログ出力先: /home/ubn/.cache/mu/log/mu.log
Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.

→ちゃんと動作します。ログの落ちるファイルはホームのローカルに落とした mu-editor と一緒ですね。

時々、終了時に「中止 (コアダンプ)」となりますが、動作には支障ありません。 端末にwayland on Gnome のときの、Qt アプリと同じような警告メッセージが表示されます。 Qt5 が使われているので、Qt アプリ だったみたい。日本語入力が可能 でした。

-

mu-editor の画面:

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

-

(venv36) [ubn@localhost ~]$ pip list
Package           Version
----------------- ---------
appdirs           1.4.4
astroid           2.4.2
asttokens         2.0.4
backcall          0.2.0
certifi           2020.6.20
chardet           3.0.4
colorzero         1.1
cycler            0.10.0
decorator         4.4.2
docutils          0.16
gpiozero          1.5.1
guizero           1.1.0
idna              2.10
ipykernel         5.3.4
ipython           7.16.1
ipython-genutils  0.2.0
isort             4.3.21
jedi              0.17.2
jupyter-client    6.1.6
jupyter-core      4.6.3
kiwisolver        1.2.0
lazy-object-proxy 1.4.3
matplotlib        2.2.2
mccabe            0.6.1
mu-editor         1.0.3
mypy              0.782
mypy-extensions   0.4.3
nudatus           0.0.4
numpy             1.19.1
parso             0.7.1
pexpect           4.8.0
pgzero            1.2
pickleshare       0.7.5
pigpio            1.46
Pillow            7.2.0
pip               20.1.1
prompt-toolkit    3.0.5
ptyprocess        0.6.0
pycodestyle       2.4.0
pyflakes          2.0.0
pygame            1.9.6
Pygments          2.6.1
pylint            2.5.3
pyparsing         2.4.7
PyQt5             5.14.1
PyQt5-sip         12.8.0
PyQtChart         5.14.0
pyserial          3.4
python-dateutil   2.8.1
pytz              2020.1
pyzmq             19.0.1
QScintilla        2.11.4
qtconsole         4.3.1
requests          2.24.0
semver            2.10.2
Send2Trash        1.5.0
setuptools        39.2.0
six               1.15.0
thonny            3.2.7
toml              0.10.1
tornado           6.0.4
traitlets         4.3.3
typed-ast         1.4.1
typing-extensions 3.7.4.2
urllib3           1.25.10
wcwidth           0.2.5
wrapt             1.12.1

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

ちょっと確認:

(venv36) [ubn@localhost ~]$ whereis mu-editor
mu-editor: /home/ubn/venv36/bin/mu-editor /home/ubn/.local/bin/mu-editor

(venv36) [ubn@localhost ~]$ ls -l /home/ubn/venv36/bin/mu-editor
-rwxrwxr-x. 1 ubn ubn 215  7月 28 01:51 /home/ubn/venv36/bin/mu-editor

(venv36) [ubn@localhost ~]$ ls -l /home/ubn/.local/bin/mu-editor
-rwxrwxr-x. 1 ubn ubn 202  7月 26 18:49 /home/ubn/.local/bin/mu-editor

(venv36) [ubn@localhost ~]$ which mu-editor
~/venv36/bin/mu-editor

→同じアプリが存在しますが、仮想環境のアプリが選択されてます。

-

4. 仮想環境の無効化:

(venv36) [ubn@localhost ~]$ deactivate
[ubn@localhost ~]$ 

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

-

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

$ ~/venv36/bin/mu-editor

→ちゃんと動作します。

-


しばらく使ってみて気付いたこと

1. pip を使ってアプリのインストールをするなら、「仮想環境」がオススメです

仮想環境を作ってインストールすれば、システムと干渉しないので問題の発生が少なくなります。また、問題があっても完全に分離されているので、仮想環境名のフォルダを削除するだけで済みます。

特に、「pip」のアップグレードは要注意。システムにある(古い)pip と干渉します。

仮想環境で作業するのがベストです。気にせずにアップグレードできます。 pip を最新にしないとインストールできないアプリがありました。

-

2. pip を使ってインストールしたアプリ

  • thonny(構文チェックできるPython エディタ)

  • mu-editor (シンプルなPython エディタ)

→Qt アプリです。CentOS だと日本語入力できました。

-

3. GNOME のWayland にて、CentOS だと、Qt アプリで日本語入力できそうです

確認できたアプリが少ないのですが、希望が持てますね。

  • mu-editor(上記)

  • KolourPaint

-

4. CentOS は心配になるくらい、システム更新が少ないです

枯れた状態で公開されているので、当然といえば当然なんですが、Fedora とか Manjaro とかを使っていると気になります。

-


まとめ

CentOS は、安定動作と長期サポートが魅力です。一度使える環境にすれば、安心して作業できます。

ちなみに、Python の開発環境を構築するなら、Fedora の方が楽でした。すんなりグループでインストールできます。

CentOSPython の開発環境を構築するなら、venv による「仮想環境」がオススメです。 システムと完全に分離されているので気楽にpip の操作ができます。

-

-


目次

先頭

-


-