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をインストールしない方...
--別バージョンをインストールしたり、仮想環境を使用したり...
---[[システム標準のPythonに別のpythonを追加インストールで...
---[[環境管理>#q0c50a8d]]の技術を使用する([[venv>#id8b0d...
-エイリアス設定
--[[設定ファイル>環境変数の設定方法#y590800f]]を開く。
vim ~/.bashrc
--以下のコードを最後の行に追加(操作は[[vi]]と同じ)
alias python="python3"
alias pip="pip3"
--保存したら、sourceする。
source ~/.bashrc
***[[Windows>https://techinfoofmicrosofttech.osscons.jp/i...
**環境管理 [#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)をサポー...
***Rye、uv [#e22b4457]
殺意を覚えるほど機能が多いので[[利用時>WSL2 Ubuntu 24.04 ...
***Jupyterで [#j9edb499]
-Jupyterとプロジェクト(フォルダ構成)は相性が悪いので、...
-以下の例では「[[virtualenv>#ke6b003a]]」を使用しているが...
-[[virtualenv>#ke6b003a]]をインストール
$ sudo apt install python3-virtualenv
-[[virtualenv>#ke6b003a]]で仮想環境を生成
$ virtualenv -p python3 myenv
-作成した仮想環境をアクティブ化
$ source myenv/bin/activate
-仮想環境「内」からJupyterを起動すると~
「myenv」仮想環境のカーネルを使用する。
--仮想環境「内」からJupyterを起動
jupyter-lab
-仮想環境「外」からJupyterを起動しても~
「myenv」仮想環境を選択可能にする。
--仮想環境「内」にipykernelをインストール
$ pip install ipykernel
--仮想環境「内」にipythonのkernelをインストール
$ ipython kernel install --user --name=jupyter-myenv
--作成した仮想環境を非アクティブ化
deactivate
--仮想環境「外」からJupyterを起動
jupyter-lab
**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から復号中継機能付きのプロキシを経由する場合、以下...
--ルート証明書をダウンロードし、プロキシのルート証明書を...
--次の環境変数を設定する
HTTP_PROXY="http://umproxy.prx.intra.hitachi.co.jp:8080"
HTTPS_PROXY="http://umproxy.prx.intra.hitachi.co.jp:8080"
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 ファイルを定義する。
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をインストールしない方...
--別バージョンをインストールしたり、仮想環境を使用したり...
---[[システム標準のPythonに別のpythonを追加インストールで...
---[[環境管理>#q0c50a8d]]の技術を使用する([[venv>#id8b0d...
-エイリアス設定
--[[設定ファイル>環境変数の設定方法#y590800f]]を開く。
vim ~/.bashrc
--以下のコードを最後の行に追加(操作は[[vi]]と同じ)
alias python="python3"
alias pip="pip3"
--保存したら、sourceする。
source ~/.bashrc
***[[Windows>https://techinfoofmicrosofttech.osscons.jp/i...
**環境管理 [#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)をサポー...
***Rye、uv [#e22b4457]
殺意を覚えるほど機能が多いので[[利用時>WSL2 Ubuntu 24.04 ...
***Jupyterで [#j9edb499]
-Jupyterとプロジェクト(フォルダ構成)は相性が悪いので、...
-以下の例では「[[virtualenv>#ke6b003a]]」を使用しているが...
-[[virtualenv>#ke6b003a]]をインストール
$ sudo apt install python3-virtualenv
-[[virtualenv>#ke6b003a]]で仮想環境を生成
$ virtualenv -p python3 myenv
-作成した仮想環境をアクティブ化
$ source myenv/bin/activate
-仮想環境「内」からJupyterを起動すると~
「myenv」仮想環境のカーネルを使用する。
--仮想環境「内」からJupyterを起動
jupyter-lab
-仮想環境「外」からJupyterを起動しても~
「myenv」仮想環境を選択可能にする。
--仮想環境「内」にipykernelをインストール
$ pip install ipykernel
--仮想環境「内」にipythonのkernelをインストール
$ ipython kernel install --user --name=jupyter-myenv
--作成した仮想環境を非アクティブ化
deactivate
--仮想環境「外」からJupyterを起動
jupyter-lab
**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から復号中継機能付きのプロキシを経由する場合、以下...
--ルート証明書をダウンロードし、プロキシのルート証明書を...
--次の環境変数を設定する
HTTP_PROXY="http://umproxy.prx.intra.hitachi.co.jp:8080"
HTTPS_PROXY="http://umproxy.prx.intra.hitachi.co.jp:8080"
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 ファイルを定義する。
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]
ページ名: