Импорт библиотеки из (или близкого) сценария с тем же именем повышает «Атрибут -эверр: модуль не имеет атрибута», или имPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Импорт библиотеки из (или близкого) сценария с тем же именем повышает «Атрибут -эверр: модуль не имеет атрибута», или им

Сообщение Anonymous »

У меня есть скрипт с именем requests.py , который должен использовать сторонний пакет запросов . Скрипт либо не может импортировать пакет, либо не может получить доступ к его функциональности.
Почему это не работает, и как это исправить?

Код: Выделить всё

import requests

res = requests.get('http://www.google.ca')
print(res)
< /code>
Traceback (most recent call last):
File "/Users/me/dev/rough/requests.py", line 1, in 
import requests
File "/Users/me/dev/rough/requests.py", line 3, in 
requests.get('http://www.google.ca')
AttributeError: module 'requests' has no attribute 'get'
In more recent versions of Python, the error message instead reads AttributeError: partially initialized module 'requests' has no attribute 'get' (most likely due to a circular import).
Using from-import of a specific name results in an ImportError:

Код: Выделить всё

from requests import get

res = get('http://www.google.ca')
print(res)
< /code>
Traceback (most recent call last):
File "requests.py", line 1, in 
from requests import get
File "/Users/me/dev/rough/requests.py", line 1, in 
from requests import get
ImportError: cannot import name 'get'
В более поздних версиях Python сообщение об ошибке вместо этого читает импортеррор: не может импортировать имя «Get» из частично инициализированного модуля «запросы» (скорее всего, из-за кругового импорта) (/SUSERS/ME/DEV/ROUGH/REQUESTS.PY) XCODE>.
br/> Importerror :

Код: Выделить всё

from requests.auth import AuthBase
< /code>
Traceback (most recent call last):
File "requests.py", line 1, in 
from requests.auth import AuthBase
File "/Users/me/dev/rough/requests.py", line 1, in 
from requests.auth import AuthBase
ImportError: No module named 'requests.auth'; 'requests' is not a package
Использование звездного импорта, а затем использование функциональности повышает nameerror :
from requests import *

res = get('http://www.google.ca')
print(res)
< /code>
Traceback (most recent call last):
File "requests.py", line 1, in
from requests import *
File "/Users/me/dev/rough/requests.py", line 3, in
res = get('http://www.google.ca')
NameError: name 'get' is not defined
< /code>
Из Python 3.13 Когда это приводит к ошибкам, теперь мы отображаем более полезное сообщение об ошибке
: < /p>
$ python random.py Traceback (most recent call last): File
"/home/me/random.py", line 1, in
import random File "/home/me/random.py", line 3, in
print(random.randint(5))
^^^^^^^^^^^^^^ AttributeError: module 'random' has no attribute 'randint' (consider renaming '/home/me/random.py' since it
has the same name as the standard library module named 'random' and
prevents importing that standard library module)
< /code>
Аналогично, если сценарий
имеет то же имя, что и сторонний модуль, который он пытается
import, и это приводит к ошибкам, мы также отображаем более полезное сообщение об ошибке
: < /p>
$ python numpy.py Traceback (most recent call last): File
"/home/me/numpy.py", line 1, in
import numpy as np File "/home/me/numpy.py", line 3, in
np.array([1, 2, 3])
^^^^^^^^ AttributeError: module 'numpy' has no attribute 'array' (consider renaming '/home/me/numpy.py' if it has the same name as a
library you intended to import)
< /code>
< /blockquote>

Для тех случаев, когда вы называете свой модуль, так же, как существующий на назначение < /strong> < /em> и хотите справиться с этой ситуацией, посмотреть, как я могу импортировать из стандартной библиотеки, когда у моего проекта есть модуль с тем же именем? (Как я могу контролировать, где Python ищет модули?)


Подробнее здесь: https://stackoverflow.com/questions/362 ... -attribute
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»