📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
編集の要約なし |
|||
| (同じ利用者による、間の8版が非表示) | |||
| 1行目: | 1行目: | ||
== | == 概要 == | ||
Pythonの特徴を以下に示す。<br> | |||
* シンプルで読みやすい文法 | |||
*: Pythonはコードの可読性を重視している。 | |||
*: そのため、他の言語に比べてシンプルな文法を持ち、インデントを使用してブロックを示す。 | |||
*: これにより、コードが視覚的に理解しやすい。 | |||
*: <br> | |||
* 動的型付け | |||
*: 変数の型を明示的に宣言する必要がなく、実行時に型が決定される。 | |||
*: これにより、開発速度が向上する。 | |||
*: <br> | |||
* 豊富な標準ライブラリ | |||
*: Pythonには多くの標準ライブラリが含まれており、ファイル操作、ネットワーク通信、データ解析、Web開発等、様々な機能を簡単に実装できる。 | |||
*: <br> | |||
* マルチパラダイム | |||
*: Pythonはオブジェクト指向プログラミング、手続き型プログラミング、関数型プログラミングをサポートしている。 | |||
*: これにより、様々なスタイルでコーディングすることが可能である。 | |||
*: <br> | |||
* クロスプラットフォーム | |||
*: Pythonは、Windows、MacOS、Linux等の様々なプラットフォームで動作する。 | |||
*: これにより、開発したコードを異なる環境で再利用できる。 | |||
<br> | |||
Pythonの用途を以下に示す。<br> | |||
* Web開発 | |||
*: DjangoやFlask等のフレームワークを使用して、Webアプリケーションを開発することができる。 | |||
*: これらのフレームワークは、迅速な開発とスケーラブルなアプリケーション構築をサポートする。 | |||
*: <br> | |||
* データサイエンスと機械学習 | |||
*: Pandas、NumPy、Matplotlib、Scikit-learn、TensorFlow、PyTorch等、多くのライブラリがデータ分析や機械学習のために用意されている。 | |||
*: これにより、データの前処理、可視化、モデル構築が効率的に行うことができる。 | |||
*: <br> | |||
* 自動化とスクリプティング | |||
*: Pythonは、システム管理やタスクの自動化に広く使用されている。 | |||
*: シンプルなスクリプトで複雑な作業を自動化することが可能である。 | |||
*: <br> | |||
* 科学技術計算 | |||
*: SciPyやSymPy等のライブラリを使用して、科学技術計算やシミュレーションを行うことができる。 | |||
*: これにより、研究や開発において複雑な計算を簡単に処理できる。 | |||
*: <br> | |||
* ゲーム開発 | |||
*: Pygameなどのライブラリを使用して、シンプルなゲームを開発することができる。 | |||
*: 教育目的やプロトタイプ作成にも適している。 | |||
*: <br> | |||
* GUIアプリケーション | |||
*: TkinterやPyQt等のライブラリを使用して、デスクトップGUIアプリケーションを構築することができる。 | |||
<br> | |||
Pythonに関するドキュメントを以下に示す。<br> | |||
* Python 3の公式ドキュメント | |||
*: https://docs.python.org/3/ | |||
*: <br> | |||
* その他のドキュメント | |||
*: https://www.w3schools.com/python/ | |||
<br><br> | <br><br> | ||
== Pythonのインストール == | == Pythonのインストール == | ||
==== RHEL / SUSE ==== | ==== RHEL / SUSE ==== | ||
Pythonのビルドに必要なライブラリをインストールする。<br> | Pythonのビルドに必要なライブラリをインストールする。<br> | ||
# RHEL | # RHEL | ||
| 18行目: | 62行目: | ||
sudo zypper install zlib-devel libffi-devel libbz2-devel libopenssl-devel ncurses-devel sqlite3-devel readline-devel tk-devel gdbm-devel libuuid-devel xz-devel libnsl-devel | sudo zypper install zlib-devel libffi-devel libbz2-devel libopenssl-devel ncurses-devel sqlite3-devel readline-devel tk-devel gdbm-devel libuuid-devel xz-devel libnsl-devel | ||
<br> | <br> | ||
まず、<span style="color:#CC0000"><u><code>--enable-shared</code>オプションを付加する場合は、必ず、libディレクトリまたはlib64ディレクトリも作成する必要がある。</u></span><br> | |||
# | # Python 3.12以降をインストールする場合 | ||
mkdir -p /<Pythonのインストールディレクトリ>/lib | |||
# Python 3.11以前をインストールする場合 | |||
mkdir -p /<Pythonのインストールディレクトリ>/lib64 | |||
<br> | |||
[https://www.python.org/downloads/ Pythonの公式Webサイト]にアクセスして、ソースコードをダウンロードする。<br> | |||
最新のPythonを導入する場合、"Latest Python 3 Release - Python <バージョン>"を選択する。<br> | |||
# | <br> | ||
ダウンロードしたファイルを解凍する。<br> | |||
# | tar xf Python-<バージョン>.tar.xz | ||
cd Python-<バージョン> | |||
<br> | |||
Pythonをビルドおよびインストールする。<br> | |||
<br> | |||
Pythonを共有ライブラリ付きでインストールする場合は、<code>--enable-shared</code>オプションを付加する。<br> | |||
また、<code>rpath</code>オプションを付加する理由としては、ダイナミックリンクを行う側に、リンクするlibpython<バージョン>.soライブラリの場所をフルパスで記憶させるためである。<br> | |||
mkdir build && cd build | |||
# Python 3.12以降の場合 | |||
../configure --prefix=<Pythonのインストールディレクトリ> \ | |||
--enable-optimizations --enable-shared \ | |||
LDFLAGS="-Wl,-rpath /<Pythonのインストールディレクトリ>/lib" | |||
# Python 3.11以前の場合 | |||
../configure --prefix=<Pythonのインストールディレクトリ> \ | |||
--enable-optimizations --enable-shared \ | |||
LDFLAGS="-Wl,-rpath /<Pythonのインストールディレクトリ>/lib64" | |||
make -j $(nproc) | |||
# configureスクリプトで<code>--prefix</code>オプションを付加している場合 | |||
make install | |||
# configureスクリプトで<code>--prefix</code>オプションを付加していない場合 | |||
make altinstall | |||
<br> | |||
Python 3.11以前をインストールする場合は、以下に示すディレクトリにシンボリックリンクを作成する。<br> | |||
ln -s /<Pythonのインストールディレクトリ>/lib64/python<バージョン>/lib-dynload/ \ | |||
/<Pythonのインストールディレクトリ>/lib/python<バージョン>/ | |||
<br> | |||
必要ならば、~/.profileファイル等に、環境変数<code>PATH</code>および<code>LD_LIBRARY_PATH</code>を追記する。<br> | |||
<syntaxhighlight lang="sh"> | |||
export PATH="/<Pythonのインストールディレクトリ>/bin:$PATH" | |||
export LD_LIBRARY_PATH="/<Pythonのインストールディレクトリ>/lib64:$LD_LIBRARY_PATH" | |||
</syntaxhighlight> | |||
<br> | <br> | ||
<code>--enable-shared</code> | <u>※注意</u><br> | ||
<code>--enable-shared</code>オプションを使用する場合の注意点において、<br> | |||
Pythonの実行バイナリやmod_wsgiライブラリ等のダイナミックリンクを行う側はlibpythonX.X.soライブラリに依存するが、libpythonX.X.soライブラリを使用しない状態になる可能性もある。<br> | |||
<br> | <br> | ||
例えば、/usr/local/ | 例えば、/usr/local/Pythonディレクトリにインストールして/usr/local/Python/bin/pythonを実行する場合、<br> | ||
設定や環境変数によっては、勝手に/usr/lib/ | 設定や環境変数によっては、勝手に/usr/lib/libpythonX.X.soや/usr/local/Python/lib/libpythonY.Y.soが使用される危険性がある。<br> | ||
<br> | <br> | ||
環境変数<code>LD_LIBRARY_PATH</code> | 環境変数<code>LD_LIBRARY_PATH</code>を使用することにより、読み込むライブラリの場所を指定できるが、<br> | ||
複数のバージョンのPythonを並列して使用する場合、ユーザが手動で環境変数の切り替えを行う必要があり、非常に煩雑になる。<br> | |||
<br> | <br> | ||
<span style="color:#CC0000"><u>そのため、必ず、<code>rpath</code>オプションを指定してPythonをインストールしなければならない。</u></span><br> | <span style="color:#CC0000"><u>そのため、必ず、<code>rpath</code>オプションを指定してPythonをインストールしなければならない。</u></span><br> | ||
<br> | <br> | ||
==== PinePhone(クロスコンパイル) ==== | ==== PinePhone(クロスコンパイル) ==== | ||
AArch64向けのPythonをクロスコンパイルするための手順を示す。<br> | AArch64向けのPythonをクロスコンパイルするための手順を示す。<br> | ||
| 96行目: | 168行目: | ||
<br><br> | <br><br> | ||
== | == 異なるバージョンのPython == | ||
システムのデフォルトであるPython 3.6を直接削除したり置き換えてはならない。<br> | |||
なぜなら、SUSEのシステムツールやパッケージマネージャーの一部が、このPythonバージョンに依存しているからである。<br> | |||
python3. | これを削除すると、システムが正常に動作しなくなる可能性がある。<br> | ||
<br> | |||
異なるバージョンのPythonを追加でインストールして、必要に応じて使い分けるというアプローチが安全で推奨される。<br> | |||
<br> | |||
まず、パッケージ管理システムから異なるバージョンのPythonをインストールする。<br> | |||
# 例 : Python 3.11をインストール | |||
# RHEL | |||
sudo dnf install python3.11 python3.11-pip python3.11-devel | |||
# SUSE | |||
sudo zypper install python311 python311-pip python311-devel | |||
<br> | |||
この時、システムには複数のPythonバージョンが共存している状態になる。<br> | |||
python3.6コマンドで古いバージョン、python3.11コマンドで新しいバージョンを呼び出すことができる。<br> | |||
<br> | |||
デフォルトで使用されるPythonバージョンを変更する場合は、update-alternativesシステムを使用する。<br> | |||
これにより、python3コマンドを実行した際にどのバージョンが起動するかを制御することができる。<br> | |||
# RHEL | |||
# Python 3.11をalternativesに登録 | |||
sudo alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 2 | |||
# Python 3.6もalternativesに登録 | |||
# 優先度を低く設定する | |||
sudo alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1 | |||
# 使用するバージョンを選択 | |||
sudo alternatives --config python3 | |||
<br> | |||
# SUSE | |||
# Python 3.11をalternativesに登録 | |||
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 2 | |||
# Python 3.6もalternativesに登録 | |||
# 優先度を低く設定する | |||
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1 | |||
# 使用するバージョンを選択 (対話的に選択) | |||
sudo update-alternatives --config python3 | |||
<br> | |||
以下に示すように、仮想環境を使用すると、プロジェクトごとに独立したPython環境を持つことができるため、パッケージの依存関係の管理も簡単になる。<br> | |||
# Pythonプロジェクトディレクトリに移動する | |||
cd <プロジェクトのディレクトリ> | |||
# 仮想環境を作成 | |||
python3.11 -m venv <任意の仮想環境ディレクトリ名> | |||
# 仮想環境を有効化 | |||
source <任意の仮想環境ディレクトリ名>/bin/activate | |||
# この環境内ではPython 3.11が使用される | |||
python --version | |||
<br><br> | <br><br> | ||
| 116行目: | 241行目: | ||
<br><br> | <br><br> | ||
== | == TKinterのインストール == | ||
TCL / TKを使用してGUIを描画する場合は、TCL / TKをインストールする。<br> | TCL / TKを使用してGUIを描画する場合は、TCL / TKをインストールする。<br> | ||
<br> | <br> | ||
==== パッケージ管理システムを使用してインストール ==== | |||
# RHEL | # RHEL | ||
sudo dnf install tkinter tk-devel | sudo dnf install tkinter tk-devel | ||
| 126行目: | 251行目: | ||
sudo zypper install python3-tk | sudo zypper install python3-tk | ||
<br> | <br> | ||
==== ソースコードからインストール ==== | |||
*: [http://www.tcl.tk/software/tcltk/download.html TCL / TKの公式Webサイト]にアクセスして、TCL / TKをダウンロードして解凍する。 | *: [http://www.tcl.tk/software/tcltk/download.html TCL / TKの公式Webサイト]にアクセスして、TCL / TKをダウンロードして解凍する。 | ||
*: 解凍したディレクトリのunixディレクトリに移動して、ビルド用ディレクトリを作成する。 | *: 解凍したディレクトリのunixディレクトリに移動して、ビルド用ディレクトリを作成する。 | ||
| 142行目: | 267行目: | ||
**: <code>make install</code> | **: <code>make install</code> | ||
<br> | <br> | ||
tkinterが正常にインストールされたかどうかを確認する。<br> | |||
# ターミナルで確認する場合 | # ターミナルで確認する場合 | ||
python3 -m tkinter | python3 -m tkinter | ||
| 150行目: | 275行目: | ||
>>> tkinter._test() | >>> tkinter._test() | ||
<br> | <br> | ||
また、Python2にtkinterをインストールする場合は、以下のコマンドを実行する。<br> | |||
python -m Tkinter | python -m Tkinter | ||
<br> | <br> | ||