Open2

Python venv についての調査メモ

zztkmzztkm

venv の sys.prefix の実行結果の比較

venv について: https://docs.python.org/ja/3/library/venv.html

前提

  • OS: Windows server
  • venv は activate されている
  • ネットワークドライブには pushd で移動している

調査背景

複数のネットワークフォルダにまたがってPythonを実行していたが、pip install したはずのモジュールがModuleNotFoundErrorを吐く場合があったので調査した

結果

ネットワークドライブ X に venv を配置しているとき

同一ドライブ上(X)でPythonを実行:

  • 'X:\work_dir\venv'

同一ドライブ上ではない場所(Y)でPythonを実行

  • 'C:\Users\myname\Python\Python39'
  • 仮想環境ではない環境の Python がインストールされている場所が示された
  • 別のPython環境が実行されているのでこのパターンが ModuleNotFoundError となったやつ

Cドライブにある venv

Cドライブ内

  • 'C:\Users\myname\dev\test\venv'

別ドライブ(ネットワークディレクトリ X)

  • 'C:\Users\myname\dev\test\venv'

結果まとめ

Cドライブ(ローカル)上で作成した venv は ローカルでの実行とネットワークドライブでの実行両方で問題がなかった。

ネットワークドライブ(X)上で作成した venv は同一ネットワークドライブ上では問題ないが、別のネットワークドライブ(X以外)上ではうまく環境が呼び出せていなかった。