有効化している仮想環境と、Pylance(VSCode)で設定しているPython環境は異なる
勘違いがあったので、備忘録として。
- 前提:
あるプロジェクトディレクトリ内にgit cloneしたプロジェクトがあり、それを動かすための仮想環境と、当初のプロジェクトにある仮想環境の二つが存在している
(本来このように入れ子で管理するのではなく、独立させるべきかも、、、)
このような場合、
sourceで有効化した環境と、Pylanceに設定している環境は同じとは限らない。
Pylanceはルートディレクトリにある環境を優先して設定する。
なので、VScodeで以下を開いて設定する必要がある。
VSCodeの画面右下に小さくPylanceで設定されている仮想環境の名前が表示されている。
クリックすると以下のような画面が現れるので、クリックで選択。
なぜこれに行き着いたか
これを使用するのは稀かもしれないが。
今回の例では、
実装ファイルの実行エラーが発生し、それを解決・理解するため、エラーに関わるクラスから定義ジャンプを用いてソースコードを見に行った。
何度か実験的にクラスの中身を書き換え実行結果を確認したが、全く結果が変わらなかった。
これを疑問に思った結果、行きついた答えは、
Pylanceの定義ジャンプを用いて参照した環境のファイルと、有効化している環境は異なるということ。
つまり、Pylanceで設定した環境のソースコードを書き換えていた。
有効にしている環境下では別のソースコードを使用しているため、結果が変わらなかったということ。
設定の環境を合わせ、変更・実行することができたが、結局以下が発生。
AttributeError: property 'num_samples' of 'RandomSampler' object has no setter
→ 勝手に書き換えれる代物じゃねーよ
.
.
.
理解度があがったのでokです。
