😺

Pythonの仮想環境とPoetryの仮想環境がごっちゃになってハマって解決した話

2024/03/30に公開

前提

MacのzshでPoetryを色々設定している環境前提。

Cursorエディタのターミナルで、Pythonの仮想環が有効になっていた。
この名前が「projectA」とする。

実際に使いたいPoetryの仮想環境の名前が似ていて「projectB」とする。

解決

久々にこの開発環境で開発するので色々忘れていたのもあって、実行するとインストールしたはずのライブラリが無いと言うエラーに悩まされた。

そこで、ようやく仮想環境が違うっぽいことに気づく。
よくみたら「projectA」やんけ。

Poetryですらない。

Cursorエディタのターミナルで、deactivateをいくらしてもなぜかbashに戻されるだけ。
仕方ないのでMacのターミナルで、「poetry shell」を実行したらうまくいった。

が、エディタの方は相変わらずPythonの仮想環のままだった。
そこでターミナルの方で「which python」をしてエディタの方でインタープリターを無理やり指定したらちゃんと仮想環境も正しい物に切り替わった。

ytk@despatlabo-MBP project % poetry --version

Poetry (version 1.7.0)
ytk@despatlabo-MBP project % poetry env list
project-shkTXvH_-py3.10 (Activated)

ytk@despatlabo-MBP project % poetry shell
Spawning shell within /Users/ytk/Library/Caches/pypoetry/virtualenvs/project-shkTXvH_-py3.10
ytk@despatlabo-MBP project % emulate bash -c '. /Users/ytk/Library/Caches/pypoetry/virtualenvs/project-shkTXvH_-py3.10/bin/activate'
(project-py3.10) ytk@despatlabo-MBP project % which python
/Users/ytk/Library/Caches/pypoetry/virtualenvs/project-shkTXvH_-py3.10/bin/python
(project-py3.10) ytk@despatlabo-MBP project % python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).

You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
March 30, 2024 - 09:54:35
Django version 4.2.1, using settings 'project.settings.local'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

地味によくわからん現象でハマった。
エディタのバグ?なのかわかんないけど誰も書かなそうなことなのでメモ。

Discussion