Рубрики
Без рубрики

Ошибка импорта Python (ModulenOtfoundError)

Python’s ImportError (ModulenOtfoundError) указывает, что вы пытались импортировать модуль, который Python не находит. Обычно это можно устранить, добавив файл с именем __init__.py в каталог, а затем добавление этого каталога на $ Pythonpath. Если этот файл (__init__.py) находится в папке, измените положение импорта в файл, который есть … Ошибка импорта Python (ModulenOtfoundError) Подробнее »

Автор оригинала: Rafal Jasionowski.

Python’s ImportError ( ModulenotfoundError ) Указывает, что вы пытались импортировать модуль, который Python не находит. Обычно это можно устранить, добавив файл с именем __init__.py в каталог, а затем добавление этого каталога на $ Pythonpath. . Если этот файл ( __init__.py ) находится в папке, измените положение импорта в файл, который импортируется сверху вниз.

Почему Python PormentError произойдет?

ImportError Обнаружен, когда Python имеет проблемы с успешным импортным модулем. Обычно эта проблема вызвана неправильными дорожка и обычно отображается с сообщением о том, что есть «Нет модуля по имени (…)» или «Невозможно импортировать имя (…)» Отказ

Вы можете увидеть интерактивный пример в нашем онлайн-проекте браузера:

Упражнение : Попробуйте исправить сообщение об ошибке, следуя подсказке в комментарии!

Так что мы можем сделать с этой ошибкой?

Создание локального пакета

Если IsOvereRor поднят ( ImportError: нет модуля с именем (…) ), когда вы импортируете свой собственный скрипт, вам необходимо проверить, есть ли сценарий, который вы хотите импортировать, имеет файл с именем __init__.py В своем каталоге, если это не так, то вам нужно создать его, потому что файлы с именем __init__.py Используются для маркировки каталогов на диске в качестве каталогов пакетов Python, а каталоги без такого файла игнорируются.

Чтобы добавить этот файл просто создать текстовый документ с именем __init__ В вашей папке и измените его расширение на .py => __init__.py Отказ

Примечание : Помните, что __init__.py Файл не может иметь никаких других символов в его имени !!!

Добавление вашей пакеты на путь

Когда вы хотите добавить свой модуль на путь постоянно, вам необходимо найти путь к папке пакетов сайта и добавить папку, содержащую ваш модуль в эту или другую папку (где, конечно, Python ищет модули).

Вопрос в том, как можно найти путь?

Самый простой способ найти путь – это написать следующий скрипт:

import sys
print(sys.path)

# Output:
['PathToYourFolders', 'C:\\Users\\YourUsername\\AppData\\Local\\Programs\\Python\\Python38\\python38.zip', 'C:\\Users\\YourUsername\\AppData\\Local\\Programs\\Python\\Python38\\DLLs', 'C:\\Users\\YourUsername\\AppData\\Local\\Programs\\Python\\Python38\\lib', 'C:\\Users\\YourUsername\\AppData\\Local\\Programs\\Python\\Python38', 'C:\\Users\\YourUsername\\AppData\\Roaming\\Python\\Python38\\site-packages', 'C:\\Users\\YourUsername\\AppData\\Local\\Programs\\Python\\Python38\\lib\\site-packages']

Тогда мы видим все пути, в которых питон ищет модули, просто добавьте свой модуль к одному из них (лучшие … \ lib \ сайт-пакеты). Как только мы сделаем это, мы сможем вызвать модуль из любого сценария Python.

Когда у вас есть несколько файлов, которые импортируют друг друга

Иногда в Python, даже если у вас есть __init__.py Файл в вашей папке, исходит ImporteRor, он говорит, что имя не может быть импортировано. Чтобы устранить эту проблему, порядок импорта должен быть изменен. Код, вызывающий ошибку:

       #a2.py file
from test.b import b2
def a1():
    print('a1')
    b2()
from test.a import a1
       #b2.py file
def b1():
    print('b1')
    a1()
def b2():
    print('b2')
if __name__ == '__main__':
    b1()

Вывод будет следующим – ImportError: не может импортировать имя «A1» Отказ Но Если мы изменим позицию от Test.B Импорт B2 в подобном ниже:

def a1():
    print('a1')
    b2()
from test.b import b2

Тогда мы можем получить то, что мы хотим:

b1
a1
b2

Резюме

В начале мы объяснили, как решить проблему из названия, а затем мы объяснили, почему возникает ошибка импорта. Тогда были представлены три способа действия. Сначала описал, как сделать локальный пакет (добавление __init__.py ), вторым, как сделать пакет, который можно вызвать из любого сценария Python (добавьте модуль в папку «Пакеты сайта) и третьим, что делать, когда У вас есть несколько файлов, которые импортируют друг друга ( ImporterRor: не может импортировать имя (...) ).

Я надеюсь, что эта статья помогла вам понять, почему эта ошибка произошла в вашем файле и дала вам ключ для его удаления.