Python не видит библиотеку после использования интерпретатора conda

Здравствуйте, моя проблема заключается в том, что Python не видит библиотеки после использования интерпретатора conda. Когда-то давно я поставил себе Anaconda и использовал его в своих проектах. Недавно мне понадобилось использовать интерпретатор Python 3.12 из папки /usr/local/bin/python 3.12 Сам python работает корректно, но когда я пытаюсь импортировать какую нибудь библиотеку, он выдает ошибку ModuleNotFoundError: No module named. Если выбрать интерпретатор conda, то при импорте этой библиотеки в проект все работает штатно. проблема не исчезла после команды pip install

    /usr/local/bin/python3.12 /Users/EV/Desktop/test/main.py
[virsi:~/Desktop/test] EV% /usr/local/bin/python3.12 /Users/EV/Desktop/test/main.py
Traceback (most recent call last):
  File "/Users/EV/Desktop/test/main.py", line 1, in <module>
    import PIL
ModuleNotFoundError: No module named 'PIL'
[virsi:~/Desktop/test] EV% 

Помимо изменения интерпретатора, необходимо также создать новое виртуальное окружение и загрузить туда нужную библиотеку


Ответы (1 шт):

Автор решения: V. Fedulov

Через терминал активировать нужное окружение Python можно так:

$ source /usr/local/bin/python3.12/bin/activate

Уже после этого при вызове pip будет вызван pip активированного окружения. И устанавливать пакеты он будет в директорию активированного окружения. И если теперь в этом окружении вы запустите Python, то установленные вами библиотеки должны быть на месте.

Однако хорошей практикой является использование виртуального окружения. Зайдите в директорию своего проекта, где находится исходный код. Можете предварительно выполнить активацию окружения:

$ source /usr/local/bin/activate

Затем создайте локальную версию интерпретатора Python в папке .venv, например:

$ python -m venv .venv

Теперь можно активировать созданное окружение:

$ source .venv/bin/activate

И дальше работать с ним, как обычно: устанавливать в него пакеты, удалять ненужные и т.д. Это гораздо удобнее, чем использовать для всего единственный интерпретатор из /usr.

→ Ссылка