全体像
この3行は、生成AIアプリをPythonで作るための開発環境の初期セットアップです。
python -m venv .venv
source .venv/bin/activate # Windowsなら .venv\Scripts\activate
pip install openai python-dotenv pydantic
やっていることは次の3つです。
- Python専用の作業部屋を作る
- その作業部屋に入る
- 必要な道具を入れる
1. python -m venv .venv
python -m venv .venv
これは仮想環境を作るコマンドです。
python
Pythonを実行しています。
python
と打つと、通常はPCにインストールされているPythonが起動します。
確認するなら:
python --version
例:
Python 3.12.4
-m
-m
は、Pythonのモジュールをコマンドとして実行するという意味です。
つまり、
python -m venv
は、
Pythonに付属している
venvという機能を実行してね
という意味です。
venv
venv
は、Python標準の仮想環境作成ツールです。
仮想環境とは、プロジェクトごとに分離されたPython環境です。
たとえば、あなたのPCに次のようなプロジェクトがあるとします。
project-a
project-b
project-c
それぞれで必要なライブラリが違うことがあります。
project-a: openai 1.50
project-b: openai 1.70
project-c: openai 2.0
これを全部PC本体に直接入れると、バージョン衝突が起きます。
そこで、プロジェクトごとに仮想環境を作ります。
project-a/.venv
project-b/.venv
project-c/.venv
これにより、各プロジェクトが自分専用のPython環境を持てます。
.venv
.venv
は、作成する仮想環境フォルダの名前です。
. で始まる名前は、Mac/Linuxでは隠しフォルダ扱いになります。
よく使われる名前は:
.venv
venv
env
実務では .venv がかなり一般的です。
このコマンドを実行すると、プロジェクトフォルダの中にこういうフォルダができます。
your-project/
├── .venv/
├── main.py
└── .env
.venv の中には、Python本体やライブラリ管理用のファイルが入ります。
2. source .venv/bin/activate
source .venv/bin/activate
これは、作った仮想環境を有効化するコマンドです。
Mac/Linuxの場合はこれです。
source .venv/bin/activate
Windowsの場合はこれです。
.venv\Scripts\activate
PowerShellなら、環境によっては:
.venv\Scripts\Activate.ps1
有効化とは何か
仮想環境を作っただけでは、まだ使われません。
作った直後の状態では、ターミナルはまだPC本体のPythonを見ている可能性があります。
そこで、
source .venv/bin/activate
を実行して、
このターミナルでは
.venvのPythonを使う
という状態にします。
有効化できているか確認する
有効化されると、ターミナルの先頭にこんな表示が出ます。
(.venv) your-project %
この (.venv) が出ていればOKです。
さらに確認するなら:
which python
Mac/Linuxなら、こう出るはずです。
/path/to/your-project/.venv/bin/python
Windowsなら:
where python
結果に .venv が含まれていればOKです。
source とは何か
source
は、シェルに対して「このファイルの内容を今のターミナルに反映して」というコマンドです。
activate ファイルは普通のPythonファイルではありません。
ターミナルの設定を一時的に変えるためのスクリプトです。
具体的には、主に PATH という環境変数を変更します。
PATHとは何か
PATH は、コマンドを探す場所の一覧です。
たとえば、あなたがターミナルで
python
と打ったとき、OSは PATH に登録された場所を順番に探して、最初に見つかった python を実行します。
仮想環境を有効化すると、.venv/bin が優先されます。
つまり、
python
が
PC本体のPython
ではなく、
your-project/.venv/bin/python
を指すようになります。
これが仮想環境の本質です。
3. pip install openai python-dotenv pydantic
pip install openai python-dotenv pydantic
これは、仮想環境の中にPythonライブラリをインストールするコマンドです。
pip
pip
は、Pythonのパッケージ管理ツールです。
Node.jsでいう npm、Javaでいう Maven/Gradle、Rubyでいう Bundler に近いです。
Pythonライブラリをインストールするときに使います。
install
install
は、そのまま「インストールする」という意味です。
openai python-dotenv pydantic
これはインストールするライブラリ名です。
一度に3つ入れています。
pip install openai
pip install python-dotenv
pip install pydantic
と3回実行しても同じです。
それぞれのライブラリの意味
1. openai
pip install openai
OpenAI APIをPythonから使うための公式ライブラリです。
これを入れると、PythonコードからOpenAIのモデルを呼び出せます。
例:
from openai import OpenAI
client = OpenAI()
response = client.responses.create(
model="gpt-5.1",
input="こんにちは。Pythonから呼び出しています。"
)
print(response.output_text)
この openai がないと、OpenAI APIを呼ぶコードを書くのが面倒になります。
HTTPリクエストを自分で組み立てる必要があるからです。
2. python-dotenv
pip install python-dotenv
.env ファイルを読み込むためのライブラリです。
生成AIアプリでは、APIキーを扱います。
APIキーをコードに直接書くのは危険です。
悪い例:
client = OpenAI(api_key="sk-xxxxxxxxxxxxxxxx")
これはやめた方がいいです。
GitHubに上げたときに漏洩する可能性があります。
そこで、.env ファイルを使います。
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxx
Python側ではこう読み込みます。
from dotenv import load_dotenv
from openai import OpenAI
load_dotenv()
client = OpenAI()
load_dotenv() が .env の中身を環境変数として読み込んでくれます。
OpenAI SDKは OPENAI_API_KEY という環境変数を自動で見に行きます。
だから、client = OpenAI() だけでAPIキーが使えます。
3. pydantic
pip install pydantic
Pydanticは、データの型チェック・検証・構造化をするライブラリです。
生成AI開発ではかなり重要です。
なぜなら、LLMの出力はそのままだと不安定だからです。
たとえば、AIにこう頼んだとします。
顧客問い合わせを分類して、JSONで返してください
期待する出力:
{
"category": "billing",
"priority": "high",
"summary": "請求金額に関する問い合わせ"
}
でも実際には、モデルが余計な説明をつけたり、項目名を間違えたりすることがあります。
Pydanticを使うと、期待する形をPython側で定義できます。
from pydantic import BaseModel
class InquiryResult(BaseModel):
category: str
priority: str
summary: str
これにより、
category は文字列
priority は文字列
summary は文字列
というルールをコードで表現できます。
生成AIアプリでは、これはかなり実務的です。
コマンド実行後の状態
この3行を実行すると、プロジェクトはだいたいこうなります。
your-project/
├── .venv/
├── main.py
├── .env
└── requirements.txt
まだ main.py や .env や requirements.txt は自分で作る必要があります。
.env の例
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxx
注意点:
.env はGitに上げない
.gitignore にこう書きます。
.env
.venv/
これがかなり大事です。
requirements.txt も作るべき
ライブラリを入れたら、次にこれを実行するとよいです。
pip freeze > requirements.txt
これで、現在の仮想環境に入っているライブラリ一覧が保存されます。
例:
openai==1.xx.x
python-dotenv==1.x.x
pydantic==2.x.x
別のPCで同じ環境を作るときは:
pip install -r requirements.txt
これで再現できます。
実務ではこれが重要です。
よくあるミス
ミス1:仮想環境を有効化せずにpip installする
pip install openai
を仮想環境なしで実行すると、PC本体のPythonに入ることがあります。
避けるには、まずこれを確認します。
which python
which pip
どちらも .venv を指していればOKです。
ミス2:.venv をGitHubに上げる
.venv はサイズが大きいです。
また、OS依存のファイルも含みます。
Git管理すべきではありません。
.gitignore に入れます。
.venv/
ミス3:APIキーをコードに直書きする
これは危険です。
悪い例:
client = OpenAI(api_key="sk-...")
よい例:
from dotenv import load_dotenv
from openai import OpenAI
load_dotenv()
client = OpenAI()
実際のおすすめ手順
新しいプロジェクトを作るなら、私はこの順番をおすすめします。
mkdir ai-sample
cd ai-sample
python -m venv .venv
source .venv/bin/activate
pip install openai python-dotenv pydantic
pip freeze > requirements.txt
touch main.py
touch .env
touch .gitignore
.gitignore:
.venv/
.env
__pycache__/
.env:
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxx
main.py:
from dotenv import load_dotenv
from openai import OpenAI
load_dotenv()
client = OpenAI()
response = client.responses.create(
model="gpt-5.1",
input="PythonからOpenAI APIを呼び出しています。短く返答してください。"
)
print(response.output_text)
実行:
python main.py
まとめ
この3行は、単なる準備ではありません。
python -m venv .venv
source .venv/bin/activate
pip install openai python-dotenv pydantic
意味はこうです。
このプロジェクト専用のPython環境を作る
↓
その環境を使う状態にする
↓
OpenAI API開発に必要なライブラリを入れる
生成AIを仕事で使うなら、この流れは毎回使う基本動作です。