パッケージ管理と仮想環境
仮想環境(venv)
仮想環境はプロジェクトごとに独立したPython環境を作る仕組みです。
# 作成
python3 -m venv venv
# 有効化
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
# 無効化
deactivate
# 確認
which python # venv/bin/python が表示される
pip list # インストール済みパッケージ
pip の使い方
# インストール
pip install requests
pip install django==4.2.0 # バージョン指定
pip install 'django>=4.0,<5.0' # 範囲指定
# アップグレード
pip install --upgrade requests
# アンインストール
pip uninstall requests
# 情報表示
pip show requests
# requirements.txtの管理
pip freeze > requirements.txt
pip install -r requirements.txt
プロジェクト構成
my_project/
├── src/
│ └── my_package/
│ ├── __init__.py
│ ├── core.py
│ └── utils.py
├── tests/
│ ├── __init__.py
│ ├── test_core.py
│ └── test_utils.py
├── requirements.txt
├── pyproject.toml
├── README.md
└── .gitignore
pyproject.toml
[project]
name = "my-package"
version = "0.1.0"
description = "プロジェクトの説明"
requires-python = ">=3.10"
dependencies = [
"requests>=2.28",
"click>=8.0",
]
[project.optional-dependencies]
dev = [
"pytest>=7.0",
"black",
"flake8",
]
init.py の役割
# my_package/__init__.py
from .core import MyClass
from .utils import helper_function
__version__ = '0.1.0'
__all__ = ['MyClass', 'helper_function']
.gitignore(Python用)
# 仮想環境
venv/
.venv/
# キャッシュ
__pycache__/
*.pyc
.pytest_cache/
# IDE
.vscode/
.idea/
# 環境変数
.env
まとめ
- プロジェクトごとに仮想環境を作る
requirements.txtで依存パッケージを管理pyproject.tomlがモダンなプロジェクト設定__init__.pyでパッケージの公開APIを定義.gitignoreで不要ファイルをバージョン管理から除外