Из Visual Studio Code [1.91.1] на моем Raspberry Pi 4 Model B под управлением Debian 12 код успешно запускается, когда я запускаю Main.py с помощью «Запуск и отладка». Я установил все необходимые пакеты в виртуальной среде. Однако, когда я пытаюсь запустить из терминала:
sudo python3 /home/pi/CodeAsynchronous/Main.py
Выполнение завершается неудачно, что заканчивается сообщением об ошибке ModuleNotFoundError: No module named 'xlrd'
.
Проект использует виртуальную среду и, похоже, неправильно загружает пакеты при запуске с терминала, возможно, не загружает правильный интерпретатор?
Раньше я всегда так поступал. Если я удалю sudo, результат будет тот же.
«Если я удалю sudo, результат будет тот же». - О, значит, ваше виртуальное окружение просто неактивно. sudo
все равно проигнорировал бы это.
Отвечает ли это на ваш вопрос? привилегии sudo в виртуальном окружении Python
Также стоит отметить, что вам не следует запускать команды от имени пользователя root, если у вас нет веской причины, например, вам необходимо напрямую взаимодействовать с аппаратным устройством.
Вы правы – активация виртуальной среды в терминале в сочетании с удалением sudo работает – спасибо!
Вероятно, потому, что IDE автоматически активирует для вас виртуальную среду.
Попробуйте запустить: source <venv>/bin/activate
в Linux или <venv>\Scripts\activate.bat
в Windows.
Виртуальную среду можно «активировать» с помощью сценария в ее двоичном каталоге (
bin
в POSIX;Scripts
в Windows). Это добавит этот каталог к вашему PATH, так что запуск Python будет вызывать интерпретатор Python среды, и вы сможете запускать установленные сценарии без необходимости использовать их полный путь. Вызов сценария активации зависит от платформы (<venv>
необходимо заменить на путь к каталогу, содержащему виртуальную среду):
Активация виртуальной среды с терминала работает! Мне также пришлось исключить «sudo» из команды, так как это, похоже, отменяет виртуальную среду в пользу глобальной.
Почему вы используете
sudo
?