• 0

خطأ AttributeError: module 'requests' has no attribute 'get' في بايثون

لدي سكريبت بسيط للغاية requests.py ويحتوي على التالي:

import requests

res = requests.get('http://www.google.com.eg')

print(res)

عند تشغيل الملف يظهر لدي الخطأ التالي:

Traceback (most recent call last):
  File ".\requests.py", line 1, in <module>
    import requests
  File "C:\Users\Adam\OneDrive\Desktop\requests.py", line 3, in <module>
    res = requests.get('http://www.google.ca')
AttributeError: partially initialized module 'requests' has no attribute 'get' (most likely due to a circular import)

جربت أن أعيد تثبيت المكتبة أكثر من مرة ولكن مازالت تظهر نفس المشكلة، ثم قمت بتغير سطر إستدعاء المكتبة ليكون كالتالي:

from requests import get

res = get('http://www.google.com.eg')

print(res)

فظهر لي خطأ مختلف كالتالي:

Traceback (most recent call last):
  File ".\requests.py", line 1, in <module>
    from requests import get
  File "C:\Users\Adam\OneDrive\Desktop\requests.py", line 1, in <module>
    from requests import get
ImportError: cannot import name 'get' from partially initialized module 'requests' (most likely due to a circular import) (C:\Users\Adam\OneDrive\Desktop\requests.py)

ما سبب هذا الخطأ؟ هل هناك مشكلة في إصدار بايثون 3.8 لدي؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

أخي لديك مشكلة في تحميل الحزمة .. وكونك جربت أن تعيد تنزيلها .. سأقترح عليك أن تثبت ال  anaconda وتستخدم محرر اكواد بايثون الشهير جوبيتر وسينجح الأمر لأن المكتبة تكون مضمنة ضمن بيئة anaconda .

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1

تحدث مشكلة circular import عندما تتضارب الاعتماديات، أي وجود ملف لدينا في مشروعنا بنفس اسم المكتبة لذلك لحل المشكلة أرجو تغيير اسم الملف requests لديك.

يمكنك التأكد من الملف المضمن بتنفيذ الشيفرة:

print dir(requests)

في حال أن الاستدعاء يعمل مع المكتبة requests وليس الملف الخاص بمشروعك، سيظهر التالي:

['ConnectionError', 'HTTPError', 'Request', 'RequestException', 'Response', 'Session',
'Timeout', 'TooManyRedirects', 'URLRequired', '__author__', '__build__', '__builtins__',
'__copyright__', '__doc__', '__file__', '__license__', '__name__', '__package__',
'__path__', '__title__', '__version__', '_oauth', 'api', 'auth', 'certs', 'codes',
'compat', 'cookies', 'defaults', 'delete', 'exceptions', 'get', 'head', 'hooks',
'models', 'options', 'packages', 'patch', 'post', 'put', 'request', 'safe_mode',
'session', 'sessions', 'status_codes', 'structures', 'utils']

جميع دوال المكتبة.

___________________

عند التضمين باستخدام:

import requests

نستعمل 

requests.get

أما:

from requests import *

نستعمل 

get

لأنه تم تضمين جميع فضاء العيبنة في الطريقة الثانية فيمكن استخدام get مباشرة.

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن