「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
複数のプログラミングパラダイムに対応している。
Python 2.x はレガシー
$ python3 -V Python 3.10.4
$ sudo apt update -y && sudo apt upgrade -y $ sudo apt install -y python3-pip
sudo pip install ...
vim ~/.bashrc
alias python="python3" alias pip="pip3"
source ~/.bashrc
python --version
python -V
python3 --version
python3 -V
インタラクティブモード(REPL)が起動し、直接Pythonコードを入力・実行できる。
python
python3
>>> print("こんにちは")
こんにちは
>>> 2 + 3
5
>>> for i in range(3):
... print(i)
...
0
1※ 即時実行か?複数行入力後実行か?はPythonが自動的に判断してくれる。
python -c "print('Hello, world!')"python3 -c "print('Hello, world!')"python script.py
python3 script.py
システムPythonと別のPythonをインストールしたり、仮想環境を切ってから実行する方が安全
pip install パッケージ名
pip install パッケージ名==バージョン
pip install --upgrade パッケージ名
pip uninstall パッケージ名
pip list
pip show パッケージ名
pip install パッケージ名[extra]
| パッケージ名 | extraの例 | 説明 |
| fastapi | all, dev, docs | 開発・ドキュメント関連 |
| requests | security, socks | SSL強化やSOCKSプロキシ対応 |
| pandas | performance | 高速化ライブラリ(例:numba) |
pip install -r requirements.txt
pip freeze > requirements.txt
numpy==1.21.0 pandas>=1.3.0 requests matplotlib<=3.4.3
Anacondaは専用の仮想環境ツールが実装されている。
システム全体のPython環境に影響を与えずに、プロジェクトごとに独立したPython仮想環境を構築するためのツール
virtualenv(仮想環境)ではなくpythonのバージョンを切り替えを簡単にしてくれるツール。
Pipfile.lock を使うパッケージ・マネージャー的なモノ
pipenvとの大きな機能の違いは、
パッケージング機能(パッケージのbuild・publish)をサポートしているかどうか。
uv pip install langflow uv run langflow run
- 現在のプロジェクトまたは一時環境を特定
- LangFlow とその依存パッケージを解決(ロックファイルを生成)
- キャッシュ済みのwheelを利用して高速にインストール
- ローカル環境に安全に格納(システムPythonを汚さない)
- LangFlow が存在するか確認
- なければ自動的にインストール(キャッシュ or PyPI)
- 依存環境を整えた上で、仮想的な環境内で langflow を起動
$ sudo apt install python3-virtualenv
$ virtualenv -p python3 myenv
$ source myenv/bin/activate
pip install Jupyter pip install jupyterlab pip install numpy pip install pandas
jupyter-lab
$ pip install ipykernel
$ ipython kernel install --user --name=jupyter-myenv
deactivate
jupyter-lab
基本的に、Jupyter方式と同じ。
以下はLinuxを想定しているが、Windowsでも、凡そ同じように設定可能。
(Windows環境のPythonも、Linux発のPythonは、自動的にWindowsのプロキシ設定を使用せず、Linux作法に倣うタメ)
HTTP_PROXY="http://プロキシのFQDN名とかポート番号とか" HTTPS_PROXY="http://プロキシのFQDN名とかポート番号とか" REQUESTS_CA_BUNDLE="<任意のフォルダパス>/XXXXX_Root_CA.cer"
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)HTTP_PROXY="http://プロキシのFQDN名とかポート番号とか" HTTPS_PROXY="http://プロキシのFQDN名とかポート番号とか" REQUESTS_CA_BUNDLE=combined-ca-bundle.pem
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"])