AWS EC2 上の Ubuntu 環境で Python 仮想環境(venv)を作ろうとしたら、思いがけずハマったので記録しておきます。
やろうとしたこと
- EC2 に Python 開発環境を作りたかった
python3 -m venv venv
で仮想環境を作り、source venv/bin/activate
でアクティベートしたかった
起きた問題
仮想環境を作り、アクティベートしようとすると…
source venv/bin/activate
-bash: venv/bin/activate: No such file or directory
えっ、activate
がない……?
調査してみた
venv
ディレクトリは存在するけど、中身を見てみると…
ls venv/bin
出てきたのはこれだけ:
python -> python3
python3 -> /usr/bin/python3
python3.12 -> python3
仮想環境らしい activate
や pip
が一切ない!
🧠 原因
仮想環境が壊れた状態で作られていたのが原因でした。なぜかというと…
python3-venv パッケージがインストールされていなかった
つまり、python3 -m venv
は一見通っているけど、必要なモジュールがないため壊れた仮想環境ができていた。
解決策
以下の手順で解決しました。
# venv パッケージをインストール
sudo apt install python3-venv
# 壊れた仮想環境を削除
rm -rf venv
# 仮想環境を再作成
python3 -m venv venv
# アクティベート
source venv/bin/activate
これで無事 (venv)
が表示されて、仮想環境が使えるようになりました!
まとめ
python3 -m venv
を使うにはpython3-venv
パッケージが必要- 入っていないと、仮想環境は壊れたまま作られる(しかもエラーは出ない)
- EC2 のような最小構成の Ubuntu 環境では特に注意!