Python プロジェクトを別のディレクトリにそのままコピーすると、依存関係が壊れてしまう場合があります。
特に仮想環境が旧パスのモジュールを参照してしまい、プロジェクトが正常に動作しないという問題が発生しました。
そこで、poetry
の設定値を再設定することで解決しました。ここでは手順を説明します。
前提
-
poetry
を使用しています - macOS
手順
-
現在の仮想環境を終了する
仮想環境を終了し、参照している
Python
パスを確認します。deactivate which python
仮想環境が正しく終了されている場合は、ルートパスにある
Python
へ切り替わっているはずです。例:/Users/username/.pyenv/shims/python
-
現在の設定を確認
仮想環境の場所などの設定を確認するために以下のコマンドを実行します。
poetry config --list
下記の項目にて仮想環境が旧パスに参照されていることが確認できます。
virtualenvs.path = "venv-old-path"
-
仮想環境のパスをリセットし、仮想環境を再生成する
旧パスに仮想環境が残っている場合は、下記コマンドでパスをリセットします。
poetry config --unset virtualenvs.path
プロジェクト内に新しい仮想環境を生成し、依存関係を再インストールします。
poetry install
同じコマンドでpoetryが使用する仮想環境パスを確認し、 新しいディレクトリ内で設定されたことを確認します。
poetry config --list
終わりに
この手順を踏むことで、コピーしたプロジェクトが別の場所でも正しく動作するようになりました。
仮想環境の参照先が変わるだけでなく、依存関係も新たに再構築されるので安心です🙆