2026.07.22(水) / 01:38
Python 3.9でrequirements.txtをインストールできない問題を、Python 3.12で解決した
- ID
- 40276
- Published
- 2026-07-22 01:38
- Modified
- 2026-07-22 01:38
- Author
- khiro
- Categories
- デフォルト
FastAPIで作成しているポートフォリオの開発環境を構築し直したところ、requirements.txtのインストール中にエラーが発生した。
原因を調べ、Python 3.12で仮想環境を作り直すことで、無事にFastAPIを起動できた。
発生したエラー
最初に、既存の仮想環境で以下のコマンドを実行した。
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
しかし、click==8.2.1のインストール時にエラーが発生した。
ERROR: Could not find a version that satisfies the requirement click==8.2.1
ERROR: No matching distribution found for click==8.2.1
ログには、次のような表示もあった。
Requires-Python >=3.10
原因
使用していた仮想環境は、Python 3.9で作成されていた。
.venv/lib/python3.9/site-packages
一方、requirements.txtに指定されていたclick==8.2.1は、Python 3.10以上を必要としていた。
つまり、使用しているPythonのバージョンと、パッケージが要求しているPythonのバージョンが一致していなかった。
pip自体を最新版にしても、Pythonのバージョンが古いままでは解決できない。
既存の仮想環境を削除する
まず、仮想環境を終了した。
deactivate
続いて、Python 3.9で作成されていた既存の仮想環境を削除した。
rm -rf .venv
仮想環境を削除しても、appディレクトリやrequirements.txtなどのプロジェクト本体は削除されない。
pyenvが使用できなかった
Python 3.12を指定するために、最初は次のコマンドを実行した。
pyenv local 3.12.2
しかし、以下のエラーが表示された。
zsh: command not found: pyenv
このMacでは、pyenvがインストールされていないか、PATHが設定されていなかった。
また、仮想環境の外ではpythonコマンドも使用できなかった。
zsh: command not found: python
macOSでは、環境によってpythonではなく、python3やpython3.12を使用する。
Python 3.12で仮想環境を作成する
今回は、python3.12コマンドが使用できたため、次のコマンドで仮想環境を作成した。
python3.12 -m venv .venv
続いて、仮想環境を有効化した。
source .venv/bin/activate
Pythonのバージョンを確認する。
python --version
仮想環境を有効化すると、pythonコマンドは.venv内のPythonを参照する。
パッケージをインストールする
最初にpipを更新した。
python -m pip install --upgrade pip
続いて、requirements.txtに記載されているパッケージをインストールした。
python -m pip install -r requirements.txt
Python 3.12で仮想環境を作り直したことで、click==8.2.1を含むパッケージを正常にインストールできた。
FastAPIを起動する
最後に、以下のコマンドを実行した。
python -m uvicorn app.main:app --reload
ターミナルに次の内容が表示された。
INFO: Will watch for changes in these directories
INFO: Uvicorn running on http://127.0.0.1:8000
INFO: Started reloader process using StatReload
これで、FastAPIの開発環境を正常に起動できた。
ブラウザから以下のURLにアクセスすると、ローカル環境のアプリを確認できる。
http://127.0.0.1:8000
今回の学び
requirements.txtのインストールに失敗した場合、パッケージのバージョンだけでなく、Python本体のバージョンも確認する必要がある。
確認に使用できるコマンドは以下のとおり。
python --version
python -m pip --version
which python
仮想環境のPythonバージョンを変更したい場合は、既存の仮想環境をそのまま使い続けるのではなく、対象のPythonから仮想環境を作り直す方が安全だ。
今回の流れは、次のとおりだった。
deactivate
rm -rf .venv
python3.12 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
python -m uvicorn app.main:app --reload
Python 3.9と依存パッケージの互換性が原因だったが、Python 3.12で仮想環境を再構築することで解決できた。