MochiuWiki : SUSE, EC, PCB
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
インストール - Pythonのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
インストール - Python
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == 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> == Pythonのインストール == ==== RHEL / SUSE ==== Pythonのビルドに必要なライブラリをインストールする。<br> # RHEL sudo dnf install zlib-devel libffi-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel libuuid-devel xz-devel expat-devel # SUSE 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> まず、<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> <u>※注意</u><br> <code>--enable-shared</code>オプションを使用する場合の注意点において、<br> Pythonの実行バイナリやmod_wsgiライブラリ等のダイナミックリンクを行う側はlibpythonX.X.soライブラリに依存するが、libpythonX.X.soライブラリを使用しない状態になる可能性もある。<br> <br> 例えば、/usr/local/Pythonディレクトリにインストールして/usr/local/Python/bin/pythonを実行する場合、<br> 設定や環境変数によっては、勝手に/usr/lib/libpythonX.X.soや/usr/local/Python/lib/libpythonY.Y.soが使用される危険性がある。<br> <br> 環境変数<code>LD_LIBRARY_PATH</code>を使用することにより、読み込むライブラリの場所を指定できるが、<br> 複数のバージョンのPythonを並列して使用する場合、ユーザが手動で環境変数の切り替えを行う必要があり、非常に煩雑になる。<br> <br> <span style="color:#CC0000"><u>そのため、必ず、<code>rpath</code>オプションを指定してPythonをインストールしなければならない。</u></span><br> <br> ==== PinePhone(クロスコンパイル) ==== AArch64向けのPythonをクロスコンパイルするための手順を示す。<br> <span style="color:#C00000;"><u>クロスコンパイルする前に、ホストPCに同じバージョンのPythonがインストールされていることを確認する。</u></span><br> <br> まず、以下のディレクトリを作成する。<br> mkdir -p /<Pythonのインストールディレクトリ>/Python_AArch64 <br> ダウンロードしたファイルを解凍するため、以下のコマンドを実行する。 tar xf Python-3.8.6.tar.xz <br> 解凍したディレクトリに移動して、コンパイル用のディレクトリを作成する。 cd Python-3.8.6 && mkdir build <br> AArch64向けにPythonをビルドおよびインストールする。<br> set -x -e export HOST_ARCH=aarch64-none-linux-gnu && \ export TOOL_PREFIX=/<GCC AArch64ツールチェインのインストールディレクトリ>/bin/$HOST_ARCH && \ export CC=$TOOL_PREFIX-gcc && \ export CXX=$TOOL_PREFIX-g++ && \ export CPP="$TOOL_PREFIX-g++ -E" && \ export AR=$TOOL_PREFIX-ar && \ export RANLIB=$TOOL_PREFIX-ranlib && \ export LD=$TOOL_PREFIX-ld && \ export READELF=$TOOL_PREFIX-readelf && \ export LDLAST="-lgcov" ac_cv_file__dev_ptmx=no ac_cv_file__dev_ptc=no ac_cv_have_long_long_format=yes \ ../configure --prefix=<一時的にAArch64向けPythonをインストールするディレクトリ> \ --build=x86_64-pc-linux-gnu --host=aarch64-linux-gnu --target=aarch64-linux-gnu \ --disable-ipv6 \ --enable-shared \ --with-ensurepip=yes \ --enable-optimization \ --with-zlib-dir=/usr/lib64 make -j $(nproc) \ BLDSHARED="$TOOL_PREFIX-gcc -shared" \ CROSS-COMPILE=$TOOL_PREFIX- CROSS_COMPILE_TARGET=yes make install \ BLDSHARED="$TOOL_PREFIX-gcc -shared" \ CROSS-COMPILE=$TOOL_PREFIX- CROSS_COMPILE_TARGET=yes <br><br> == 異なるバージョンのPython == システムのデフォルトであるPython 3.6を直接削除したり置き換えてはならない。<br> なぜなら、SUSEのシステムツールやパッケージマネージャーの一部が、このPythonバージョンに依存しているからである。<br> これを削除すると、システムが正常に動作しなくなる可能性がある。<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> == Hello Worldの表示 == 最後に、Pythonを動かす。<br> ターミナルを起動して、以下のコマンドを実行する。<br> python3.8 <br> 最下行に、以下のように表示されていれば、Pythonがコマンドを待っている状態である。<br> >>> <br> その状態で以下の文を実行すると、その下に"Hello World!"と表示される。<br> <syntaxhighlight lang="python"> print("Hello World!") </syntaxhighlight> <br><br> == TKinterのインストール == TCL / TKを使用してGUIを描画する場合は、TCL / TKをインストールする。<br> <br> ==== パッケージ管理システムを使用してインストール ==== # RHEL sudo dnf install tkinter tk-devel # SUSE sudo zypper install python3-tk <br> ==== ソースコードからインストール ==== *: [http://www.tcl.tk/software/tcltk/download.html TCL / TKの公式Webサイト]にアクセスして、TCL / TKをダウンロードして解凍する。 *: 解凍したディレクトリのunixディレクトリに移動して、ビルド用ディレクトリを作成する。 ** TCLのインストール **: <code>cd ~/tcl<TCLのバージョン名>/unix && mkdir build && cd build</code> **: <code>../configure --prefix=/<Pythonのインストールディレクトリ>/TCL_TK --enable-threads --enable-symbols</code> **: <code>make -j $(nproc)</code> **: <code>make install</code> *: <br> ** TKのインストール **: <code>cd ~/tk<TKのバージョン名/unix && mkdir build && cd build</code> **: <code>../configure --prefix=/<Pythonのインストールディレクトリ>/TCL_TK \</code> **: <code>--with-tcl=<TCLのビルドディレクトリ 例. $HOME/tcl<TCLのバージョン名>/unix/build></code> **: <code>make -j $(nproc)</code> **: <code>make install</code> <br> tkinterが正常にインストールされたかどうかを確認する。<br> # ターミナルで確認する場合 python3 -m tkinter # Pythonインタラクティブで確認する場合 >>> import tkinter >>> tkinter._test() <br> また、Python2にtkinterをインストールする場合は、以下のコマンドを実行する。<br> python -m Tkinter <br> tknterが正常にインストールされたか確認する。<br> ターミナルで確認する場合 python -m tkinter Pythonインタラクティブで確認する場合 >>> import tkinter >>> tkinter._test() <br><br> == その他 == ==== PyGObjectのインストール ==== PyGObjectが提供するPythonバインディングを使用して、GTKベースのGUIアプリケーションを実行することができる。<br> これには、PyGObject、GTK、それらの依存関係をインストールする必要がある。<br> <br> * パッケージ管理システムでのインストール *: 以下のコマンドを実行する。 ** RHEL : <code>sudo dnf install python3-gobject gtk3</code> ** SUSE : <code>sudo zypper install python3-gobject python3-gobject-Gdk typelib-1_0-Gtk-3_0 libgtk-3-0</code> *: <br> *: 以下のサンプルコードを実行する。 *: <code>python3 Sample.py</code> <br> * PIPコマンド(PyPI)でのインストール *: GTKと依存関係をビルドするため、以下のコマンドを実行する。 ** RHEL : <code>sudo dnf install pkg-config gcc gcc-c++ python3-devel gtk3-devel gobject-introspection-devel cairo-devel</code> ** SUSE : <code>sudo zypper install pkg-config gcc gcc-c++ python3-devel cairo-devel gtk3-devel gobject-introspection-devel</code> *: <br> *: PycairoとPyGObjectをビルド・インストールするため、以下のコマンドを実行する。 *: <code>pip3 install pycairo</code> *: <code>pip3 install PyGObject</code> *: <br> *: 以下のサンプルコードを実行する。 *: <code>python3 Sample.py</code> <br> <syntaxhighlight lang="python"> import gi gi.require_version("Gtk", "3.0") from gi.repository import Gtk window = Gtk.Window(title="Hello World") window.show() window.connect("destroy", Gtk.main_quit) Gtk.main() </syntaxhighlight> <br><br> __FORCETOC__ [[カテゴリ:Python]][[カテゴリ:RHEL]][[カテゴリ:SUSE]]
インストール - Python
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse