Почему не находит установленный модуль?

pip install psutil

Установил psutil, далее запускаю скрипт в котором импортирован данный модуль:

python3.13 /var/www/script.py

Ругается – не находит данный модуль:

No module named 'psutil'

В чём дело?


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

Автор решения: Pak Uula

UPDATE я немного подумал, и понял, что написанное ниже - технически верно, но устарело по духу.

Не нужно устанавливать что-либо в глобальный пайтон, будь то системный, установленный через apt, или доставленный самостоятельно. Через некоторое время пакеты устареют, их обновление с почти 100% вероятностью начнёт приводить к конфликтам. В результате код, который работал, вдруг работать перестанет. Это так больно и муторно расследовать!

Поэтому ставить нужно только в venv! Создаете для своего проекта окружение, активируете его, и ставьте всё, что угодно. Вы и только вы контролируете состав пакетов и их настройки. При необходимости обновляете пакеты тоже вы, и если вдруг что-то сломается, будет понятно что и к каким версиям откатывать.

ИТОГО: не пользуйтесь глобальным pip! пользуйтесь только и исключительно venv.

ОТВЕТ НА ВОПРОС

Дабы точно знать, какой именно вариант пайитона установил пакет, я вызываю не команду pip, а модуль pip, да ещё и с полным путем, дабы наверняка:

/usr/local/bin/python3.13 -m pip install ...

Python - штука такая, в системе может встречаться более одного: один установлен с системой, пара других доставлены со временем, плюс несколько виртуальных окружений в проектах. Я ещё помню дикие времена, когда в системе одновременно были python и python3, и это были разные! версии пайтона - python == python2.7. Соответственно, команда pip ставила пакеты в python2.7, а для третьего пайтона была команда pip3. Поэтому и сформировалась привычка ставить через -m pip - так оно вернее. И даже venv оказался бессилен: как ставил через -m pip, так и ставлю )

Так вот, если вы установили что-то пайтоновское через apt, то вы установили в системный Пайтон, который /usr/bin/python3, и это совершенно точно не python3.13. Поэтому либо пользуйтесь системным пайтоном, либо установите через -m pip в нужный вам.

→ Ссылка