pythonのvenvでルートフォルダ(親ディレクトリ)名を変更(リネーム)したい時の修正方法

公開日:
目次

venvを利用していてフォルダの名前変えたい時がよくあるのですが、フォルダを変えてしまうとvenvの設定も変更する必要があります。

今回は2種類試してみたので備忘録を残します。

venvを作り直す

確実かつ基本的に一番早いはずです。

例外: ライブラリの数が膨大かつ.exeファイルが少ない場合(かなりの特例)

正直こちらでやった方がいいです。

やり方

  • requirements.txtにライブラリ情報を出力
  • venvを削除する
  • venvを作り直す
    • python -m venv {venvフォルダ名}
  • requirements.txtをロード

requirements.txtを利用して別の環境にライブラリを移す方法はは下記記事を参照してください。

仮想環境のパスを修正する(非推奨)

まずはdeactivateしてから、venvのフォルダ名を変更します。

仮想環境のパスを変更するために、以下のファイルやスクリプトを修正する必要があります。

  • Windowsの場合: {venvフォルダパス}\Scripts\activate
  • macOS/Linuxの場合: {venvフォルダパス}/bin/activate

40行目ぐらいにあるVIRTUAL_ENV="{venvフォルダパス}"を修正します。

pyvenv.cfg ファイル

仮想環境のルートディレクトリにある pyvenv.cfg ファイルには、仮想環境のパスが記載されています。このファイルも更新する必要があります。

command または executable に記載されています。

バッチファイルやシェルスクリプト

仮想環境ディレクトリ内にあるバッチファイル(Windowsの場合)やシェルスクリプト(macOSやLinuxの場合)も、新しいパスに合わせて修正する必要があります。特に、この中で使用されているPythonの実行パスやpipの実行パスを新しいパスに変更する必要があります。

Windowsの場合

  • activate.batの11行目set VIRTUAL_ENV={venvフォルダパス}

.exeファイルの中身のパスをすべて修正する。

これをやらない場合コマンドが利用できません(pythonやpipなど)。

バイナリをいじることができるエディタを利用して書き直してください。