Python
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfras...
-[[戻る>深層学習(deep learning)]]
*目次 [#baf5c8d2]
#contents
*概要 [#h004167c]
-豊富で大規模な文書
-本体部分は必要最小限に抑えられている。
-Pythonのリファレンス実装であるCPythonは、OSS。
**特徴 [#n1646095]
***言語 [#abcd69f2]
複数のプログラミングパラダイムに対応している。
-オブジェクト指向
-命令型
-手続き型
-関数型
-動的型付け
***実装 [#k1d972c6]
-参照カウントベースの自動メモリ管理(GC)を持つ。
-さまざまな領域に対応する大規模な標準ライブラリやサードパ...
ライブラリが提供され、本体にない機能はその都度呼び出して...
-多くのハードウェアとOSに対応(Linux版、Mac版、Win版、32/...
**バージョン [#cccd6779]
-2.x 系のバージョンと 3.x 系のバージョンが存在。
-2.x 系と3.x 系には互換性がない。
***Python 2 [#z2093a3d]
Python 2.x はレガシー
***Python 3 [#i785d5c1]
-Python 3 が Python 言語の現在と未来
-本項の執筆時点で、Python 3なので、~
本項ではPython 3を取り扱ってる。
*詳細 [#u68fe019]
**インストール [#va75989e]
***Linux [#rdeb4b17]
-システム標準のモノがインストールされている。
$ python3 -V
Python 3.10.4
-pip
--インストールは別途、必要になる。
$ sudo apt update -y && sudo apt upgrade -y
$ sudo apt install -y python3-pip
--ただし、OSの一部のツールがPythonに依存しているため、~
sudoやrootで、グローバル領域にインストールしないようにす...
sudo pip install ...
--なんなら、システムのPythonにはpipをインストールしない方...
---別バージョンをインストールしたり:[[システム標準のPyth...
---別バージョンをインストールできないなら:[[仮想環境>#q0...
-エイリアス設定
--[[設定ファイル>環境変数の設定方法#y590800f]]を開く。
vim ~/.bashrc
--以下のコードを最後の行に追加(操作は[[vi]]と同じ)
alias python="python3"
alias pip="pip3"
--保存したら、sourceする。
source ~/.bashrc
***[[Windows>https://techinfoofmicrosofttech.osscons.jp/i...
**基本操作(python) [#k0f72db4]
***pythonのバージョン確認 [#m1f5eca4]
-
python --version
-
python -V
-
python3 --version
-
python3 -V
***pythonのインタラクティブモード(REPL) [#xaa47aa1]
直接Pythonコードを入力・実行できる。
-起動
--
python
--
python3
-インタラクティブモード(REPL)
>>> print("こんにちは")
こんにちは
>>> 2 + 3
5
>>> for i in range(3):
... print(i)
...
0
1
※ 即時実行か?複数行入力後実行か?はPythonが自動的に判断...
***簡単なpythonコードの一行実行 [#bb04f46d]
-
python -c "print('Hello, world!')"
-
python3 -c "print('Hello, world!')"
***pythonスクリプト・ファイルの実行 [#md046001]
-
python script.py
-
python3 script.py
**基本操作(pip) [#md319810]
***パッケージのインストール [#m6609633]
システムPythonと別のPythonをインストールしたり、[[仮想環...
-
pip install パッケージ名
-
pip install パッケージ名==バージョン
***パッケージのアップグレード [#h2ec00b1]
pip install --upgrade パッケージ名
***パッケージのアンインストール [#u8fe504c]
pip uninstall パッケージ名
***インストール済みパッケージの確認 [#b1c5b4c0]
pip list
***特定インストール済みパッケージの情報表示 [#f8f3163f]
pip show パッケージ名
***依存関係を含めたインストール [#eea283af]
-
pip install パッケージ名[extra]
-よく使われるパッケージと extra の例
|パッケージ名|extraの例|説明|h
|fastapi|all, dev, docs|開発・ドキュメント関連|
|requests|security, socks|SSL強化やSOCKSプロキシ対応|
|pandas|performance|高速化ライブラリ(例:numba)|
***requirements.txt から一括インストール [#y24fd93c]
-
pip install -r requirements.txt
-requirements.txtの作成方法
--現在の環境から自動生成する
pip freeze > requirements.txt
--以下の様に手動で作成する
numpy==1.21.0
pandas>=1.3.0
requests
matplotlib<=3.4.3
**仮想環境 [#q0c50a8d]
***[[Anaconda>Pythonファースト・ステップ#o0176db3]] [#s78...
Anacondaは専用の[[仮想環境>#q0c50a8d]]ツールが実装されて...
***virtualenv [#ke6b003a]
システム全体のPython環境に影響を与えずに、プロジェクトご...
-仮想環境を有効にするには、activateスクリプトを実行する。
-仮想環境内で必要なパッケージをインストールすると、
--指定したディレクトリにPythonの実行ファイルやライブラリ...
--プロジェクト毎に異なるパッケージやバージョンを使用でき...
-仮想環境を無効にするには、deactivateコマンドを実行し元の...
-使い方の例は、「[[Jupyterで>#j9edb499]]」の所に記載した...
***pyenv [#t457e431]
[[virtualenv(仮想環境)>#ke6b003a]]ではなくpythonのバー...
-pyenvと[[virtualenv>#ke6b003a]]を組み合わせて使用し、異...
-さらに、pyenvにはpyenv-virtualenvというプラグインがあり...
***venv [#id8b0d17]
-[[virtualenv>#ke6b003a]] が Python 3.3 から標準機能とし...
-純正なので良いと考えるが、新しいため、情報がまだ少ないの...
-Ubuntu 24.04から仮想環境が一般的になっている様なので、[[...
***pipenv [#wf3de977]
Pipfile.lock を使うパッケージ・マネージャー的なモノ
-以前は、pip + requirements.txtでやっていたらしい。
-自動でvenv環境を作成してくれる。
-パッケージング機能はないらしい。
***Poetry [#h7d723e5]
[[pipenv>#wf3de977]]との大きな機能の違いは、~
パッケージング機能(パッケージのbuild・publish)をサポー...
***uv [#e22b4457]
-Rust製の 超高速・軽量な pip/venv 代替
-利用方法については実利用手順([[ココ>LangFlowのファース...
-実際の動作を細かくブレークダウンしてみると
uv pip install langflow
uv run langflow run
--uv pip install langflow
>
+現在のプロジェクトまたは一時環境を特定
+LangFlow とその依存パッケージを解決(ロックファイルを生...
+キャッシュ済みのwheelを利用して高速にインストール
+ローカル環境に安全に格納(システムPythonを汚さない)
--uv run langflow run
>
+LangFlow が存在するか確認
+なければ自動的にインストール(キャッシュ or PyPI)
+依存環境を整えた上で、仮想的な環境内で langflow を起動
***Rye [#v61f9592]
-Pythonプロジェクト全体管理を行う上位統合ツール
-最近は内部で[[uv>#e22b4457]]を使う方向に進んでいる。
**開発環境 [#vd07d68b]
***Jupyterで [#j9edb499]
-Jupyter&プロジェクト(当該フォルダ以下)構成は相性が悪...
--仮想環境中にインストールして仮想環境上で使用するか、
--仮想環境のカーネルを選択して利用できるようにする。
-以下の例では
--仮想環境のカーネルを選択して利用できるようにしている。
--「[[virtualenv>#ke6b003a]]」を使用しているが「[[venv>#i...
-仮想環境い([[virtualenv>#ke6b003a]])
--[[virtualenv>#ke6b003a]]をインストール
$ sudo apt install python3-virtualenv
--[[virtualenv>#ke6b003a]]で仮想環境を生成
$ virtualenv -p python3 myenv
--作成した仮想環境をアクティブ化
$ source myenv/bin/activate
-仮想環境「内」にJupyterをインストールして起動すると「mye...
--仮想環境「内」にJupyterをインストール
pip install Jupyter
pip install jupyterlab
pip install numpy
pip install pandas
--仮想環境「内」からJupyterを起動
jupyter-lab
-仮想環境「外」からJupyterを起動しても「myenv」仮想環境を...
(ただし、JupyterLab 上で使うパッケージは、予め仮想環境に...
--仮想環境「内」にipykernelをインストール
$ pip install ipykernel
--仮想環境「内」にipythonのkernelをインストール
$ ipython kernel install --user --name=jupyter-myenv
--作成した仮想環境を非アクティブ化
deactivate
--仮想環境「外」からJupyterを起動
jupyter-lab
***VSCode、Cursor [#s79685e3]
基本的に、[[Jupyter方式>#j9edb499]]と同じ。
-...と言うのも、あくまで、Browser代替のフロントとしてIDE...
-[[WSL経由で接続する場合は、WSLとJupyterのプラグインをイ...
**step by step的な [#pc5ae908]
***[[ファースト・ステップ>Pythonファースト・ステップ]] [#...
***[[セカンド・ステップ>Pythonセカンド・ステップ]] [#v2a7...
***[[サード・ステップ>Pythonサード・ステップ]] [#b1e4534c]
**環境構築履歴メモ [#la989816]
***[[WSL2 Ubuntu 24.04 LTS 2025/1/21]] [#sd14ca9a]
***[[Ubuntu 24.04 on Azure via Bastion 2025/2/27]] [#x66a...
***復号中継機能付きのプロキシを経由する場合 [#y9ac7218]
以下はLinuxを想定しているが、Windowsでも、凡そ同じように...
(Windows環境のPythonも、Linux発のPythonは、自動的にWindo...
-先ずは「[[プロキシの設定方法]]」をご参照のこと。
-以下「Pythonから」と言うのは、一部、Pythonで使用するパッ...
-「Python(のrequestsなど)から」復号中継機能付きのプロキ...
--ルート証明書をダウンロードしプロキシのルート証明書を任...
--次の環境変数を設定する
HTTP_PROXY="http://プロキシのFQDN名とかポート番号とか"
HTTPS_PROXY="http://プロキシのFQDN名とかポート番号とか"
REQUESTS_CA_BUNDLE="<任意のフォルダパス>/XXXXX_Root_CA.c...
-「Pythonから」復号中継&パススルー機能付きのプロキシを経...
単純な設定では、パススルー時にエラーになる可能性があるの...
--PythonのCA証明書バンドルに、ルート証明書を追加。
import certifi
import shutil
# certifi が提供する CA 証明書バンドル(通常は .pem ファ...
certifi_bundle_path = certifi.where()
# 元のバンドルに独自証明書を加えた、新しい証明書バンドル...
new_bundle_path = "combined-ca-bundle.pem"
# 元の certifi バンドルを、新バンドル・ファイルにコピー...
shutil.copy(certifi_bundle_path, new_bundle_path)
# プロキシ提供元から展開されているルート証明書を読込。
proxy_cer_path = "XXXXX_Root_CA.cer"
with open(proxy_cer_path, "r") as proxy_cer_file:
proxy_cer_content = proxy_cer_file.read()
# 新バンドル・ファイルの末尾に、ルート証明書を追加で書込。
with open(new_bundle_path, "a+") as new_bundle_file:
new_bundle_file.write("\n" + proxy_cer_content)
--.env ファイルを定義する。~
認証プロキシの認証設定(UID/PWD)は不要である模様(コレは...
HTTP_PROXY="http://プロキシのFQDN名とかポート番号とか"
HTTPS_PROXY="http://プロキシのFQDN名とかポート番号とか"
REQUESTS_CA_BUNDLE=combined-ca-bundle.pem
--環境変数を読み込む。~
REQUESTS_CA_BUNDLEの相対パスを絶対パスに変換
import dotenv
import os
# 環境変数を読み込み
dotenv.load_dotenv()
# REQUESTS_CA_BUNDLEに絶対パスを設定する。
os.environ['REQUESTS_CA_BUNDLE'] = os.path.join(
os.path.dirname(dotenv.find_dotenv()),
dotenv.dotenv_values()["REQUESTS_CA_BUNDLE"])
*参考 [#dce6bed8]
終了行:
「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfras...
-[[戻る>深層学習(deep learning)]]
*目次 [#baf5c8d2]
#contents
*概要 [#h004167c]
-豊富で大規模な文書
-本体部分は必要最小限に抑えられている。
-Pythonのリファレンス実装であるCPythonは、OSS。
**特徴 [#n1646095]
***言語 [#abcd69f2]
複数のプログラミングパラダイムに対応している。
-オブジェクト指向
-命令型
-手続き型
-関数型
-動的型付け
***実装 [#k1d972c6]
-参照カウントベースの自動メモリ管理(GC)を持つ。
-さまざまな領域に対応する大規模な標準ライブラリやサードパ...
ライブラリが提供され、本体にない機能はその都度呼び出して...
-多くのハードウェアとOSに対応(Linux版、Mac版、Win版、32/...
**バージョン [#cccd6779]
-2.x 系のバージョンと 3.x 系のバージョンが存在。
-2.x 系と3.x 系には互換性がない。
***Python 2 [#z2093a3d]
Python 2.x はレガシー
***Python 3 [#i785d5c1]
-Python 3 が Python 言語の現在と未来
-本項の執筆時点で、Python 3なので、~
本項ではPython 3を取り扱ってる。
*詳細 [#u68fe019]
**インストール [#va75989e]
***Linux [#rdeb4b17]
-システム標準のモノがインストールされている。
$ python3 -V
Python 3.10.4
-pip
--インストールは別途、必要になる。
$ sudo apt update -y && sudo apt upgrade -y
$ sudo apt install -y python3-pip
--ただし、OSの一部のツールがPythonに依存しているため、~
sudoやrootで、グローバル領域にインストールしないようにす...
sudo pip install ...
--なんなら、システムのPythonにはpipをインストールしない方...
---別バージョンをインストールしたり:[[システム標準のPyth...
---別バージョンをインストールできないなら:[[仮想環境>#q0...
-エイリアス設定
--[[設定ファイル>環境変数の設定方法#y590800f]]を開く。
vim ~/.bashrc
--以下のコードを最後の行に追加(操作は[[vi]]と同じ)
alias python="python3"
alias pip="pip3"
--保存したら、sourceする。
source ~/.bashrc
***[[Windows>https://techinfoofmicrosofttech.osscons.jp/i...
**基本操作(python) [#k0f72db4]
***pythonのバージョン確認 [#m1f5eca4]
-
python --version
-
python -V
-
python3 --version
-
python3 -V
***pythonのインタラクティブモード(REPL) [#xaa47aa1]
直接Pythonコードを入力・実行できる。
-起動
--
python
--
python3
-インタラクティブモード(REPL)
>>> print("こんにちは")
こんにちは
>>> 2 + 3
5
>>> for i in range(3):
... print(i)
...
0
1
※ 即時実行か?複数行入力後実行か?はPythonが自動的に判断...
***簡単なpythonコードの一行実行 [#bb04f46d]
-
python -c "print('Hello, world!')"
-
python3 -c "print('Hello, world!')"
***pythonスクリプト・ファイルの実行 [#md046001]
-
python script.py
-
python3 script.py
**基本操作(pip) [#md319810]
***パッケージのインストール [#m6609633]
システムPythonと別のPythonをインストールしたり、[[仮想環...
-
pip install パッケージ名
-
pip install パッケージ名==バージョン
***パッケージのアップグレード [#h2ec00b1]
pip install --upgrade パッケージ名
***パッケージのアンインストール [#u8fe504c]
pip uninstall パッケージ名
***インストール済みパッケージの確認 [#b1c5b4c0]
pip list
***特定インストール済みパッケージの情報表示 [#f8f3163f]
pip show パッケージ名
***依存関係を含めたインストール [#eea283af]
-
pip install パッケージ名[extra]
-よく使われるパッケージと extra の例
|パッケージ名|extraの例|説明|h
|fastapi|all, dev, docs|開発・ドキュメント関連|
|requests|security, socks|SSL強化やSOCKSプロキシ対応|
|pandas|performance|高速化ライブラリ(例:numba)|
***requirements.txt から一括インストール [#y24fd93c]
-
pip install -r requirements.txt
-requirements.txtの作成方法
--現在の環境から自動生成する
pip freeze > requirements.txt
--以下の様に手動で作成する
numpy==1.21.0
pandas>=1.3.0
requests
matplotlib<=3.4.3
**仮想環境 [#q0c50a8d]
***[[Anaconda>Pythonファースト・ステップ#o0176db3]] [#s78...
Anacondaは専用の[[仮想環境>#q0c50a8d]]ツールが実装されて...
***virtualenv [#ke6b003a]
システム全体のPython環境に影響を与えずに、プロジェクトご...
-仮想環境を有効にするには、activateスクリプトを実行する。
-仮想環境内で必要なパッケージをインストールすると、
--指定したディレクトリにPythonの実行ファイルやライブラリ...
--プロジェクト毎に異なるパッケージやバージョンを使用でき...
-仮想環境を無効にするには、deactivateコマンドを実行し元の...
-使い方の例は、「[[Jupyterで>#j9edb499]]」の所に記載した...
***pyenv [#t457e431]
[[virtualenv(仮想環境)>#ke6b003a]]ではなくpythonのバー...
-pyenvと[[virtualenv>#ke6b003a]]を組み合わせて使用し、異...
-さらに、pyenvにはpyenv-virtualenvというプラグインがあり...
***venv [#id8b0d17]
-[[virtualenv>#ke6b003a]] が Python 3.3 から標準機能とし...
-純正なので良いと考えるが、新しいため、情報がまだ少ないの...
-Ubuntu 24.04から仮想環境が一般的になっている様なので、[[...
***pipenv [#wf3de977]
Pipfile.lock を使うパッケージ・マネージャー的なモノ
-以前は、pip + requirements.txtでやっていたらしい。
-自動でvenv環境を作成してくれる。
-パッケージング機能はないらしい。
***Poetry [#h7d723e5]
[[pipenv>#wf3de977]]との大きな機能の違いは、~
パッケージング機能(パッケージのbuild・publish)をサポー...
***uv [#e22b4457]
-Rust製の 超高速・軽量な pip/venv 代替
-利用方法については実利用手順([[ココ>LangFlowのファース...
-実際の動作を細かくブレークダウンしてみると
uv pip install langflow
uv run langflow run
--uv pip install langflow
>
+現在のプロジェクトまたは一時環境を特定
+LangFlow とその依存パッケージを解決(ロックファイルを生...
+キャッシュ済みのwheelを利用して高速にインストール
+ローカル環境に安全に格納(システムPythonを汚さない)
--uv run langflow run
>
+LangFlow が存在するか確認
+なければ自動的にインストール(キャッシュ or PyPI)
+依存環境を整えた上で、仮想的な環境内で langflow を起動
***Rye [#v61f9592]
-Pythonプロジェクト全体管理を行う上位統合ツール
-最近は内部で[[uv>#e22b4457]]を使う方向に進んでいる。
**開発環境 [#vd07d68b]
***Jupyterで [#j9edb499]
-Jupyter&プロジェクト(当該フォルダ以下)構成は相性が悪...
--仮想環境中にインストールして仮想環境上で使用するか、
--仮想環境のカーネルを選択して利用できるようにする。
-以下の例では
--仮想環境のカーネルを選択して利用できるようにしている。
--「[[virtualenv>#ke6b003a]]」を使用しているが「[[venv>#i...
-仮想環境い([[virtualenv>#ke6b003a]])
--[[virtualenv>#ke6b003a]]をインストール
$ sudo apt install python3-virtualenv
--[[virtualenv>#ke6b003a]]で仮想環境を生成
$ virtualenv -p python3 myenv
--作成した仮想環境をアクティブ化
$ source myenv/bin/activate
-仮想環境「内」にJupyterをインストールして起動すると「mye...
--仮想環境「内」にJupyterをインストール
pip install Jupyter
pip install jupyterlab
pip install numpy
pip install pandas
--仮想環境「内」からJupyterを起動
jupyter-lab
-仮想環境「外」からJupyterを起動しても「myenv」仮想環境を...
(ただし、JupyterLab 上で使うパッケージは、予め仮想環境に...
--仮想環境「内」にipykernelをインストール
$ pip install ipykernel
--仮想環境「内」にipythonのkernelをインストール
$ ipython kernel install --user --name=jupyter-myenv
--作成した仮想環境を非アクティブ化
deactivate
--仮想環境「外」からJupyterを起動
jupyter-lab
***VSCode、Cursor [#s79685e3]
基本的に、[[Jupyter方式>#j9edb499]]と同じ。
-...と言うのも、あくまで、Browser代替のフロントとしてIDE...
-[[WSL経由で接続する場合は、WSLとJupyterのプラグインをイ...
**step by step的な [#pc5ae908]
***[[ファースト・ステップ>Pythonファースト・ステップ]] [#...
***[[セカンド・ステップ>Pythonセカンド・ステップ]] [#v2a7...
***[[サード・ステップ>Pythonサード・ステップ]] [#b1e4534c]
**環境構築履歴メモ [#la989816]
***[[WSL2 Ubuntu 24.04 LTS 2025/1/21]] [#sd14ca9a]
***[[Ubuntu 24.04 on Azure via Bastion 2025/2/27]] [#x66a...
***復号中継機能付きのプロキシを経由する場合 [#y9ac7218]
以下はLinuxを想定しているが、Windowsでも、凡そ同じように...
(Windows環境のPythonも、Linux発のPythonは、自動的にWindo...
-先ずは「[[プロキシの設定方法]]」をご参照のこと。
-以下「Pythonから」と言うのは、一部、Pythonで使用するパッ...
-「Python(のrequestsなど)から」復号中継機能付きのプロキ...
--ルート証明書をダウンロードしプロキシのルート証明書を任...
--次の環境変数を設定する
HTTP_PROXY="http://プロキシのFQDN名とかポート番号とか"
HTTPS_PROXY="http://プロキシのFQDN名とかポート番号とか"
REQUESTS_CA_BUNDLE="<任意のフォルダパス>/XXXXX_Root_CA.c...
-「Pythonから」復号中継&パススルー機能付きのプロキシを経...
単純な設定では、パススルー時にエラーになる可能性があるの...
--PythonのCA証明書バンドルに、ルート証明書を追加。
import certifi
import shutil
# certifi が提供する CA 証明書バンドル(通常は .pem ファ...
certifi_bundle_path = certifi.where()
# 元のバンドルに独自証明書を加えた、新しい証明書バンドル...
new_bundle_path = "combined-ca-bundle.pem"
# 元の certifi バンドルを、新バンドル・ファイルにコピー...
shutil.copy(certifi_bundle_path, new_bundle_path)
# プロキシ提供元から展開されているルート証明書を読込。
proxy_cer_path = "XXXXX_Root_CA.cer"
with open(proxy_cer_path, "r") as proxy_cer_file:
proxy_cer_content = proxy_cer_file.read()
# 新バンドル・ファイルの末尾に、ルート証明書を追加で書込。
with open(new_bundle_path, "a+") as new_bundle_file:
new_bundle_file.write("\n" + proxy_cer_content)
--.env ファイルを定義する。~
認証プロキシの認証設定(UID/PWD)は不要である模様(コレは...
HTTP_PROXY="http://プロキシのFQDN名とかポート番号とか"
HTTPS_PROXY="http://プロキシのFQDN名とかポート番号とか"
REQUESTS_CA_BUNDLE=combined-ca-bundle.pem
--環境変数を読み込む。~
REQUESTS_CA_BUNDLEの相対パスを絶対パスに変換
import dotenv
import os
# 環境変数を読み込み
dotenv.load_dotenv()
# REQUESTS_CA_BUNDLEに絶対パスを設定する。
os.environ['REQUESTS_CA_BUNDLE'] = os.path.join(
os.path.dirname(dotenv.find_dotenv()),
dotenv.dotenv_values()["REQUESTS_CA_BUNDLE"])
*参考 [#dce6bed8]
ページ名: