Open2
【Python】 小技メモ
ipynbファイルに開発環境を入れておく
どの仮想環境を使って解析したのか分からなくなるので、最初のセルに入れておく。
# ————————————
# 環境情報のキャプチャセル
# ————————————
import os
import sys
import subprocess
from datetime import datetime
from IPython.display import display, Markdown
# カレントディレクトリ
cwd = os.getcwd()
# 仮想環境(venv または conda)
venv = os.environ.get('VIRTUAL_ENV') # venv
conda = os.environ.get('CONDA_DEFAULT_ENV') # conda
env = venv or conda or "(未検出)"
# Python 実行ファイル&バージョン
exe = sys.executable
ver = sys.version.splitlines()[0]
# 実行日
date = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
# 表示用 Markdown 組み立て
md = f"""
**📅 Captured at:** `{date}`\n
**📁 Current directory:** `{cwd}`\n
**🐍 Python executable:** `{exe}`\n
**🐍 Python version:** `{ver}`\n
**🛠️ Virtual environment:** `{env}`\n
"""
# Notebook 上に表示
display(Markdown(md))
sys.path.appendの便利なワンライナー
現在作業しているところに最も近いsrcフォルダにパスを通す。
ipynb
import sys
from pathlib import Path
sys.path.append(str(next(p / "src" for p in [Path.cwd(), *Path.cwd().parents] if (p / "src").exists())))
現在作業しているところに最も近いGitリポジトリ内のsrcフォルダにパスを通す。
ipynb
import sys
from pathlib import Path
sys.path.append(str(next(p for p in [Path.cwd(), *Path.cwd().parents] if (p/".git").exists())/"src"))
スクリプトの置き場所の最も近いsrcフォルダにパスを通す。
pyスクリプト
import sys
from pathlib import Path
sys.path.append(str(next(p / "src" for p in [Path(__file__).resolve().parent, *Path(__file__).resolve().parents] if (p / "src").exists())))