اذهب إلى المحتوى
  • 0

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

Adam Ebrahim

السؤال

لدي سكريبت بسيط للغاية 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 لدي؟

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

Recommended Posts

  • 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 مباشرة.

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

  • 0

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

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

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...