Puncte:0

Pachetul Python funcționează pe linia de comandă, dar nu poate fi găsit într-un script

drapel us

Practic din titlu și imaginea de mai jos am instalat piserial și funcționează în terminalul Python, dar nu într-un script.

am făcut pip3 instalează pyserial, și am încercat de asemenea pip install pyserial și python3 -m pip install pyserial, care arată că am deja pachetul instalat.

Când folosesc python3, introduceți terminalul Python și intrați import serial nu exista erori. Când am un script care folosește import pyserial și rulați-l folosind python3 ./serial_test.py, dă eroarea.

De ce unul aruncă o eroare și celălalt nu? Și cum pot remedia asta?

Iată o captură de ecran a terminalului meu:

Imagine cu terminalul meu

Scriptul meu python, indiferent dacă scriptul folosește serial bibliotecă, aruncă eroarea:

script python

Editare 1: Un lucru pe care am uitat să-l menționez a fost că atunci când o fac pip3 --versiune arata:

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

în loc de:

/usr/lib/python3...

la fel de enumerate aici, deși acest lucru încă nu ar explica diferența dintre codul din terminal.

Poate o soluție ar fi să-l instalezi folosind pip pentru /usr/lib/python3, cu toate acestea, nu sunt sigur cum să fac asta.

Editarea 2: Pe măsură ce mă uit mai departe, îmi voi actualiza constatările. Cand fac unde este python3, Eu iau:

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

Nu sunt sigur cum funcționează programele pe linia de comandă, așa că nu sunt sigur de ce există mai multe locuri pentru python3, dar poate va explica problema.

Editarea 3: care python3 spectacole:

/usr/bin/python3

și care pip3 spectacole:

/usr/local/bin/pip3
Puncte:1
drapel cn

Opțiunea A:

Puteți încerca să rulați:

/usr/local/bin/pip3 instalează serialul

și apoi:

/usr/bin/python3 serial_test.py

și verificați dacă vă confruntați în continuare cu aceeași problemă. Dacă o faci, atunci încearcă Opțiunea B.

Opțiunea B:

Puteți încerca să creați un mediu virtual prin:

virtualenv -p python3 venv

sau:

python3-venv

și încercați să executați programul.

NOTĂ

Utilizați Python 3 ca utilizator în modul normal, în timp ce utilizați root la lansarea scriptului, așa cum se arată în imaginea pe care ați încărcat-o. Folosind Python 3 ca sudo va lansa piton ca utilizator root și poate ca $PATH nu va fi la fel pt piton și pip.

Este posibil să fi instalat serial modul în cel al utilizatorului dvs pip cale, dar este posibil să nu fie prezent în utilizatorul root pip cale și de aceea vă confruntați cu problema!

SmokeySpace avatar
drapel us
Bine, cu siguranță a fost ultimul tău punct pentru că îl rulam ca sudo, rulând „sudo python3” și apoi importul bibliotecii aruncă și eroarea. Cu siguranță m-ai pus pe drumul cel bun pentru a remedia problema, așa că mulțumesc! Știți cum aș putea fie să instalez biblioteca pentru sudo, fie să dau mai multe permisiuni lui python sau utilizatorului meu? (nu sunt sigur cum funcționează)
Amogh Saxena - REXTER avatar
drapel cn
A fost o plăcere să te ajut :) Sigur că poți folosi ```sudo python3``` și ```sudo pip3 install ``` pentru a instala module pentru root. Dar nu o voi recomanda.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.