Score:0

แพ็คเกจ Python ทำงานบนบรรทัดคำสั่ง แต่ไม่พบในสคริปต์

ธง us

โดยพื้นฐานจากชื่อและรูปภาพด้านล่างฉันได้ติดตั้งแล้ว พีซีเรียล และใช้งานได้ในเทอร์มินัล Python แต่ไม่ใช่ในสคริปต์

ฉันได้ทำ pip3 ติดตั้ง pyserialและยังได้พยายาม pip ติดตั้ง pyserial และ python3 -m pip ติดตั้ง pyserialซึ่งส่งคืนว่าฉันได้ติดตั้งแพ็คเกจแล้ว

เมื่อฉันใช้ หลาม3ป้อนเทอร์มินัล Python และป้อน นำเข้าซีเรียล ไม่มีข้อผิดพลาด เมื่อฉันมีสคริปต์ที่ใช้ นำเข้า pyserial และเรียกใช้โดยใช้ python3 ./serial_test.pyมันทำให้ข้อผิดพลาด

ทำไมคนหนึ่งถึงโยนข้อผิดพลาดและอีกคนหนึ่งไม่? และฉันจะแก้ไขได้อย่างไร

นี่คือภาพหน้าจอของเทอร์มินัลของฉัน:

รูปภาพของเทอร์มินัลของฉัน

สคริปต์ไพ ธ อนของฉันไม่ว่าสคริปต์จะใช้ไฟล์ อนุกรม ห้องสมุดส่งข้อผิดพลาด:

สคริปต์หลาม

แก้ไข 1: สิ่งหนึ่งที่ฉันลืมพูดถึงก็คือเมื่อฉันทำ pip3 -- รุ่น มันแสดงให้เห็น:

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

แทน:

/usr/lib/python3...

เช่น ระบุไว้ที่นี่แม้ว่าสิ่งนี้จะยังไม่สามารถอธิบายความแตกต่างของรหัสในเทอร์มินัลได้

บางทีวิธีแก้ปัญหาคือการติดตั้งโดยใช้ pip สำหรับ /usr/lib/python3แต่ฉันไม่แน่ใจว่าจะทำอย่างไร

แก้ไข 2: เมื่อฉันพิจารณาเพิ่มเติม ฉันจะอัปเดตผลการวิจัยของฉัน เมื่อฉันทำ python3 อยู่ที่ไหน, ฉันเข้าใจ:

python3: /usr/bin/python3 /usr/bin/python3.8 /usr/bin/python3.8-config /usr/lib/python3 /usr/lib/python3.8 /usr/lib/python3.9 /อื่นๆ /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: ซึ่ง python3 แสดง:

/usr/bin/python3

และ ซึ่ง pip3 แสดง:

/usr/local/bin/pip3
Score:1
ธง cn

ตัวเลือก A:

คุณสามารถลองเรียกใช้:

/usr/local/bin/pip3 ติดตั้งซีเรียล

แล้ว:

/usr/bin/python3 serial_test.py

และตรวจสอบว่าคุณยังประสบปัญหาเดิมอยู่หรือไม่ ถ้าเป็นเช่นนั้น ให้ลองใช้ตัวเลือก B

ตัวเลือก B:

คุณสามารถลองสร้างสภาพแวดล้อมเสมือนได้โดย:

virtualenv -p python3 venv

หรือ:

python3-venv

และทดลองรันโปรแกรม

บันทึก

คุณกำลังใช้ Python 3 เป็นผู้ใช้ของคุณในโหมดปกติ ในขณะที่คุณใช้รูทเมื่อเรียกใช้สคริปต์ ดังที่แสดงในภาพที่คุณอัปโหลด ใช้ Python 3 เป็น ซูโด จะเปิดตัว หลาม ในฐานะผู้ใช้รูทและอาจเป็นไฟล์ $เส้นทาง จะไม่เหมือนกันสำหรับ หลาม และ pip.

คุณอาจติดตั้ง อนุกรม โมดูลในผู้ใช้ของคุณ pip เส้นทาง แต่อาจไม่มีอยู่ในผู้ใช้รูท pip เส้นทางและนั่นคือสาเหตุที่คุณประสบปัญหา!

SmokeySpace avatar
us flag
โอเค มันเป็นประเด็นสุดท้ายของคุณอย่างแน่นอน เป็นเพราะฉันเรียกใช้เป็น sudo เรียกใช้ "sudo python3" จากนั้นนำเข้าไลบรารีก็เกิดข้อผิดพลาดเช่นกัน คุณช่วยฉันมาถูกทางแล้วในการแก้ไขปัญหา ขอบคุณ! คุณรู้หรือไม่ว่าฉันจะติดตั้งไลบรารีสำหรับ sudo หรือให้สิทธิ์ python หรือผู้ใช้ของฉันมากขึ้นได้อย่างไร (ไม่แน่ใจว่าทำงานอย่างไร)
Amogh Saxena - REXTER avatar
cn flag
ยินดีที่ได้ช่วยเหลือคุณ :) แน่นอนว่าคุณสามารถใช้ ```sudo python3``` และ ```sudo pip3 install ได้ ``` เพื่อติดตั้งโมดูลสำหรับรูท แต่ฉันจะไม่แนะนำ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา