はじめに
AWSでの開発を進めていくと、ec2-test、sam-api-project、my-serverless-appなど、プロジェクトフォルダがユーザーディレクトリ直下に散らばってしまいませんか?
「そろそろ整理しないと...」と思ってフォルダを移動したら、Python環境が動かなくなって困ったという経験、私もありました。
この記事では、AWSプロジェクトを安全に整理する方法と、特にPythonの仮想環境(venv)で注意すべきポイントを実体験から解説します。
なぜフォルダを移動すると環境が壊れるのか
Python仮想環境の仕組み
Pythonの仮想環境(.venv)は、作成時の絶対パスを内部に保持しています。
作成時のパス: C:\Users\user1\aws-test
↓
.venv\pyvenv.cfg に絶対パスが記録される
↓
フォルダ移動: C:\my-aws\aws-test
↓
パスが一致せず、仮想環境が動かない!実際に起きたエラー
フォルダをmy-aws配下に移動後、python test.pyを実行すると:
ModuleNotFoundError: No module named 'boto3'仮想環境を有効化(.venv\Scripts\activate)しているのに、インストール済みのはずのモジュールが見つからない...これは仮想環境が古いパスを参照しているためでした。
正しいフォルダ整理の手順
ステップ1: VSCodeを完全に終了する
重要: フォルダを開いたままではファイルがロックされて移動できません。
1. VSCodeのウィンドウをすべて閉じる
2. タスクマネージャーで完全に終了していることを確認ステップ2: フォルダを移動
C:\Users\user1\
├── aws-test
├── ec2-test
├── sam-api-project
└── my-serverless-app
# 移動後の状態
C:\my-aws\
├── aws-test
├── ec2-test
├── sam-api-project
└── my-serverless-appステップ3: 仮想環境を再作成
移動先で仮想環境を削除・再作成します。
cd C:\my-aws\aws-test
# 古い仮想環境を削除
rmdir /s /q .venv
# 新しい仮想環境を作成
python -m venv .venv
# 有効化
.venv\Scripts\activate
# 依存関係を再インストール
pip install boto3ポイント: requirements.txtがあれば一括インストールできます。
pip install -r requirements.txtSAMプロジェクトの場合の注意点
SAM(AWS Serverless Application Model)プロジェクトには追加の注意が必要です。
.aws-samフォルダも削除する
.aws-samはビルド成果物で、古いパスを含んでいる可能性があります。
cd C:\my-aws\my-serverless-app
# ビルド成果物を削除
rmdir /s /q .aws-sam
rmdir /s /q .venv
# 再ビルド
sam buildローカル開発用の仮想環境は必須ではない
実は、SAM開発では必ずしもローカルに仮想環境を作る必要はありません。
# コード編集
# ↓
# ビルド(依存関係は自動解決)
sam build
# デプロイ
sam deploysam buildがsrc/requirements.txtから自動的に依存関係を.aws-sam/build/配下に構築するため、ローカルの.venvは不要です。
仮想環境が必要なケース:
- VSCodeのコード補完(IntelliSense)を使いたい
- ローカルでユニットテストを実行したい
コード補完が必要になったら、その時点で作成すればOKです。
python -m venv .venv
.venv\Scripts\activate
pip install -r src/requirements.txt失敗しないための事前準備
移動前にチェックすべきこと
1. .gitフォルダの確認
# Gitリポジトリがあるか確認
cd プロジェクトフォルダ
git status.gitフォルダごと移動すれば、Gitの履歴は維持されます。
2. 絶対パスの使用箇所を確認
以下のファイルに絶対パスが記述されていないか確認:
samconfig.toml.vscode/settings.json- カスタムスクリプト
通常、SAMやCDKは相対パスベースなので問題ありませんが、念のため確認しましょう。
3. AWS設定への影響はなし
~/.aws/credentialsや~/.aws/configはユーザーホーム配下にあるため、プロジェクトフォルダの場所に依存しません。
まとめ
重要なポイント
✅ Pythonの仮想環境は移動後に再作成が必要
.venvは絶対パスを内部に保持しているrmdir→python -m venvで再作成
✅ SAMプロジェクトは.aws-samも削除して再ビルド
- 古いビルド成果物にパスが含まれている可能性
✅ ローカル開発用の.venvは必須ではない
sam buildが依存関係を自動解決- コード補完が必要な時だけ作成すればOK
✅ VSCodeを完全に終了してから移動
- ファイルロックを避ける
フォルダ整理の推奨手順
1. VSCode完全終了
2. フォルダ移動
3. .venv と .aws-sam を削除
4. 新しい場所で仮想環境を再作成(必要なら)
5. sam build で動作確認この手順を守れば、安全にプロジェクトを整理できます。
関連記事
- EC2セキュリティグループのIP制限で接続できない?真の送信元IPを特定する方法 - プロジェクト整理後、EC2にアクセスできなくなった時の対処法

- CloudShellとローカル環境でのAWS開発 - 使い分けと注意点 - 整理したプロジェクトをCloudShellでも使う方法

終わりに
AWSプロジェクトの整理は、開発を効率化する第一歩です。Python仮想環境の特性を理解していれば、躊躇せずに整理できるようになります。
この記事が、同じようにフォルダ整理で悩んでいる方の助けになれば嬉しいです。
コメント