По следам вопроса в чате: как не ошибиться с окружением при установке пакета
Если вы работаете с Python, у вас на машине наверняка больше одного окружения, используй вы virtualenv, pyenv, pipenv, poetry или что-то ещё. По разным причинам бинарник python и других инструментов (`pip`, black, ...) могут разъехаться и начать указывать на разные окружения, что приводит к ошибкам вида "No module named X", хотя вы только что установили X.
Многие проблемы решаются, если вообще отказаться от запуска команд помимо python. Почти все пакеты можно запустить через python -m:
$ python -m pip install numpy
...
Так у нас гарантированно вызовется pip из той же инсталляции, что и python.
Если же это не помогло, вот несколько рецептов для дебага, что же происходит при установке.
Как посмотреть, куда указывает python:
$ which python
/Users/saluev/myproject/.venv/bin/python
Как посмотреть, где python ищет пакеты:
$ python -c "import sys, pprint; pprint.pprint(sys.path)"
['',
'/opt/homebrew/Cellar/
[email protected]/3.12.7_1/Frameworks/Python.framework/Versions/3.12/lib/python312.zip',
'/opt/homebrew/Cellar/
[email protected]/3.12.7_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12',
'/opt/homebrew/Cellar/
[email protected]/3.12.7_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/lib-dynload',
'/Users/saluev/myproject/.venv/lib/python3.12/site-packages']
Как посмотреть, с каким python работает pip:
$ pip debug
pip version: pip 24.2 from /Users/saluev/myproject/.venv/lib/python3.12/site-packages/pip (python 3.12)
sys.version: 3.12.7 (main, Oct 1 2024, 02:05:46) [Clang 16.0.0 (clang-1600.0.26.3)]
sys.executable: /Users/saluev/myproject/.venv/bin/python3.12
...
Как посмотреть, куда pip установил ваш пакет:
$ pip show numpy
...
...
...
Location: /Users/saluev/myproject/.venv/lib/python3.12/site-packages
...
—————
Мы расширяем тематику канала и ищем авторов. Если вы хотите поделиться библиотекой, новостью или просто хорошим техническим материалом, пишите
@saluev или любому др