Điểm:0

Gói Python hoạt động trên dòng lệnh nhưng không thể tìm thấy trong tập lệnh

lá cờ us

Về cơ bản từ tiêu đề và hình ảnh bên dưới, tôi đã cài đặt hỏa ngục và nó hoạt động trong thiết bị đầu cuối Python nhưng không hoạt động trong tập lệnh.

tôi đã làm cài đặt pyserial pip3, và cũng đã thử pip cài đặt pyserialpython3 -m pip cài đặt pyserial, trả về rằng tôi đã cài đặt gói này.

Khi tôi sử dụng trăn3, nhập thiết bị đầu cuối Python và nhập nhập nối tiếp không có lỗi. Khi tôi có một kịch bản sử dụng nhập pyserial và chạy nó bằng cách sử dụng python3 ./serial_test.py, nó đưa ra lỗi.

Tại sao một người ném lỗi còn người kia thì không? Và làm thế nào tôi có thể khắc phục điều này?

Đây là một ảnh chụp màn hình thiết bị đầu cuối của tôi:

Hình ảnh thiết bị đầu cuối của tôi

Tập lệnh python của tôi, bất kể tập lệnh có sử dụng nối tiếp thư viện, đưa ra lỗi:

tập lệnh python

Chỉnh sửa 1: Một điều tôi quên đề cập đến là khi tôi làm pip3 --version nó cho thấy:

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

thay vì:

/usr/lib/python3...

như liệt kê ở đây, mặc dù điều này vẫn không giải thích được sự khác biệt trong mã trong thiết bị đầu cuối.

Có lẽ một giải pháp sẽ là cài đặt nó bằng cách sử dụng píp/usr/lib/python3, tuy nhiên tôi không chắc làm thế nào để làm điều đó.

Chỉnh sửa 2: Khi tôi xem xét kỹ hơn về vấn đề này, tôi sẽ cập nhật những phát hiện của mình. Khi tôi làm đâu là python3, Tôi có:

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

Tôi không chắc chương trình hoạt động như thế nào trên dòng lệnh, vì vậy tôi không chắc tại sao lại có nhiều chỗ cho trăn3, nhưng có lẽ nó sẽ giải thích vấn đề.

Chỉnh sửa 3: python3 nào trình diễn:

/usr/bin/python3

pip3 nào trình diễn:

/usr/local/bin/pip3
Điểm:1
lá cờ cn

Tùy chọn A:

Bạn có thể thử chạy:

/usr/local/bin/pip3 cài đặt nối tiếp

và sau đó:

/usr/bin/python3 serial_test.py

và kiểm tra xem bạn có còn gặp phải vấn đề tương tự không. Nếu vậy, hãy thử Tùy chọn B.

Tùy chọn B:

Bạn có thể thử tạo một môi trường ảo thông qua:

virtualenv -p python3 venv

hoặc:

python3-venv

và cố gắng thực hiện chương trình.

GHI CHÚ

Bạn đang sử dụng Python 3 với tư cách là người dùng của mình ở chế độ bình thường, trong khi bạn đang sử dụng quyền root khi khởi chạy tập lệnh, như thể hiện trong hình ảnh bạn đã tải lên. Sử dụng Python 3 như sudo Sẽ khởi chạy con trăn với tư cách là người dùng root và có thể là $PATH sẽ không giống nhau cho con trănpíp.

Bạn có thể đã cài đặt nối tiếp mô-đun trong người dùng của bạn píp đường dẫn, nhưng nó có thể không có trong người dùng root píp path và đó là lý do tại sao bạn đang gặp sự cố!

SmokeySpace avatar
lá cờ us
Được rồi, điểm cuối cùng của bạn chắc chắn là do tôi đang chạy nó dưới dạng sudo, chạy "sudo python3" và sau đó nhập thư viện cũng gây ra lỗi. Bạn chắc chắn đã giúp tôi đi đúng hướng để khắc phục sự cố, cảm ơn! Bạn có biết làm thế nào tôi có thể cài đặt thư viện cho sudo hoặc cấp cho python hoặc người dùng của tôi nhiều quyền hơn không? (không chắc nó hoạt động như thế nào)
Amogh Saxena - REXTER avatar
lá cờ cn
Rất vui được giúp bạn :) Chắc chắn bạn có thể sử dụng ```sudo python3``` và ```sudo pip3 install ``` để cài đặt các mô-đun cho root. Nhưng tôi sẽ không khuyên bạn nên nó.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.