Рейтинг:0

Пакет Python работает в командной строке, но его нельзя найти в скрипте

флаг us

В основном из заголовка и изображения ниже я установил pyserial и это работает в терминале Python, но не в скрипте.

я сделал pip3 установить pyserial, а также пробовал pip установить pyserial и python3 -m pip установить pyserial, которые возвращают, что у меня уже установлен пакет.

Когда я использую питон3, войдите в терминал Python и введите серийный номер импорта ошибок нет. Когда у меня есть скрипт, использующий импортировать pyserial и запустите его с помощью python3 ./serial_test.py, выдает ошибку.

Почему один выдает ошибку, а другой нет? И как я могу это исправить?

Вот скриншот моего терминала:

Изображение моего терминала

Мой скрипт Python, независимо от того, использует ли скрипт сериал библиотека, выдает ошибку:

скрипт питона

Редактировать 1: Одна вещь, которую я забыл упомянуть, это то, что когда я делаю pip3 --версия это показывает:

pip 22.0.3 из /usr/local/lib/python3.8/dist-packages/pip (python 3.8)

вместо:

/usr/lib/python3...

как перечислено здесь, хотя это все равно не объяснило бы разницу во внутритерминальном коде.

Возможно, решением было бы установить его с помощью точка за /USR/библиотека/python3, однако я не уверен, как это сделать.

Редактировать 2: По мере дальнейшего изучения этого вопроса я обновлю свои выводы. Когда я делаю где питон3, Я получил:

python3: /usr/bin/python3 /usr/bin/python3.8 /usr/bin/python3.8-config /usr/lib/python3 /usr/lib/python3.8 /usr/lib/python3.9 /etc /python3 /etc/python3.8 /usr/local/lib/python3.8 /usr/include/python3.8 /usr/share/python3 /usr/share/man/man1/python3.1.gz

Я не уверен, как программы работают в командной строке, поэтому я не уверен, почему существует несколько мест для питон3, но, возможно, это объяснит проблему.

Редактировать 3: какой питон3 показывает:

/USR/бен/python3

и какой пункт3 показывает:

/USR/местные/бен/pip3
Рейтинг:1
флаг cn

Вариант А:

Вы можете попробовать запустить:

/usr/local/bin/pip3 установить серийный номер

а потом:

/usr/bin/python3 serial_test.py

и проверьте, сталкиваетесь ли вы с той же проблемой. Если да, то попробуйте вариант Б.

Вариант Б:

Вы можете попробовать создать виртуальную среду с помощью:

virtualenv -p python3 venv

или же:

python3-venv

и попробуйте запустить программу.

ПРИМЕЧАНИЕ

Вы используете Python 3 в качестве пользователя в обычном режиме, в то время как вы используете root при запуске скрипта, как показано на загруженном вами изображении. Использование Python 3 в качестве судо запустит питон как пользователь root и, возможно, $ПУТЬ не будет одинаковым для питон и точка.

Возможно, вы установили сериал модуль в вашем пользовательском точка путь, но он может отсутствовать в папке пользователя root точка путь, и именно поэтому вы столкнулись с проблемой!

SmokeySpace avatar
флаг us
Хорошо, это определенно был ваш последний пункт, потому что я запускал его как sudo, запускал «sudo python3», а затем импорт библиотеки также выдавал ошибку. Вы определенно помогли мне решить проблему, так что спасибо! Знаете ли вы, как я могу либо установить библиотеку для sudo, либо предоставить python или моему пользователю дополнительные разрешения? (не уверен, как это работает)
Amogh Saxena - REXTER avatar
флаг cn
Было приятно вам помочь :) Конечно, вы можете использовать ```sudo python3``` и ```sudo pip3 install ``` для установки модулей для root. Но рекомендовать не буду.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.