از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
خطای «AttributeError: شی ماژول فاقد ویژگی «Serial» در پایتون است را برطرف کنید
سرفصلهای مطلب
معرفی
حتی اگر یک توسعهدهنده باتجربه پایتون باشید، گاهی اوقات با خطاهایی مواجه میشوید که میتواند بسیار گیجکننده باشد. یکی از این خطاها این است AttributeError: module object has no attribute 'Serial'
. این بایت به شما در درک و حل این مشکل کمک می کند.
درک AttributeError
این AttributeError
در پایتون زمانی که شما سعی می کنید به یک ویژگی دسترسی داشته باشید یا آن را فراخوانی کنید که یک ماژول، کلاس یا نمونه ندارد، افزایش می یابد. به طور خاص، خطا AttributeError: module object has no attribute 'Serial'
نشان می دهد که شما در حال تلاش برای دسترسی به Serial
ویژگی از ماژولی که آن را ندارد.
به عنوان مثال، اگر ماژولی به نام دارید serial
و شما سعی می کنید از آن استفاده کنید Serial
ویژگی از آن، ممکن است با این خطا مواجه شوید. در اینجا یک مثال است:
import serial
ser = serial.Serial('/dev/ttyUSB0') # This line causes the error
در این مورد، serial
ماژولی که وارد می کنید آن را ندارد Serial
صفت، از این رو AttributeError
.
توجه داشته باشید: درک این نکته مهم است که پایتون به حروف کوچک و بزرگ حساس است. Serial
و serial
سلام. اگر مشخصه وجود داشته باشد اما از حالت اشتباه استفاده می کنید، با یک نیز مواجه خواهید شد AttributeError
.
رفع خطا
خبر خوب این است که این خطا معمولاً یک راه حل بسیار آسان است، حتی اگر در ابتدا بسیار گیج کننده به نظر برسد. بیایید برخی از راه حل ها را بررسی کنیم.
ماژول Correct pyserial را نصب کنید
یکی از رایج ترین دلایل این خطا نصب نادرست آن است pyserial
مدول. این Serial
ویژگی بخشی از pyserial
ماژول که برای ارتباط سریال در پایتون استفاده می شود.
ممکن است ماژولی به نام نصب کرده باشید serial
بجای pyserial
(این رایج تر از چیزی است که فکر می کنید!). برای رفع این مشکل، باید ماژول نادرست را حذف و ماژول صحیح را نصب کنید.
$ pip uninstall serial
$ pip install pyserial
پس از اجرای این دستورات، ممکن است مشکل شما حل شود. اکنون می توانید وارد کنید Serial
از جانب pyserial
و از آن در کد خود استفاده کنید:
from pyserial import Serial
ser = Serial('/dev/ttyUSB0') # This line no longer causes an error
اگر این خطا رفع نشد، به خواندن ادامه دهید.
نام فایل serial.py خود را تغییر دهید
با توجه به این که چقدر پایتون در حرفه ام نوشته ام، فکر می کنید که به اندازه خودم مرتکب این اشتباه ساده نمی شوم…
احتمال دیگر این است که مفسر پایتون زمانی که فایلی در فهرست پروژه شما وجود دارد با همان نام ماژولی که میخواهید وارد کنید، گیج میشود. این یکی دیگر از منابع رایج است AttributeError
خطا
فرض کنید، برای مثال، شما یک فایل به نام دارید serial.py
در دایرکتوری پروژه شما (یا شاید خود اسکریپت شما نام دارد serial.py
). وقتی سعی میکنی import serial
، ممکن است پایتون شما را وارد کند serial.py
فایل به جای pyserial
ماژول، منجر به AttributeError
.
راه حل در اینجا ساده است – نام خود را تغییر دهید serial.py
فایل به چیز دیگری
$ mv serial.py my_serial.py
نتیجه
در این بایت، ما دو علت رایج را بررسی کرده ایم AttributeError: module object has no attribute 'Serial'
خطا در پایتون: نصب اشتباه است pyserial
ماژول، و داشتن یک فایل در فهرست پروژه خود که نامی را با ماژولی که می خواهید وارد کنید به اشتراک بگذارد. با نصب ماژول صحیح یا تغییر نام فایل های متناقض، باید بتوانید این خطا را از بین ببرید.
منتشر شده در 1402-12-27 05:55:04