<memo>UbuntuでPython仮想環境を作ったのに、起動すると「venv/bin/activate: No such file or directory」になる[解決済み]

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

仮想環境らしい activatepip が一切ない!

🧠 原因

仮想環境が壊れた状態で作られていたのが原因でした。なぜかというと…

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 環境では特に注意!
タイトルとURLをコピーしました