Python ModuleNotFoundError для пользовательского модуля

#python #python-3.x #python-unittest #modulenotfounderror

#python #python-3.x #python-unittest #modulenotfounderror

Вопрос:

Я импортирую пользовательский модуль, называемый в качестве помощника, в мой unittest. Когда я запускаю с помощью test Explorer, он работает нормально, но когда я пытаюсь запустить его через командную строку, он выдает ошибку ниже. ModuleNotFoundError: нет модуля с именем ‘Helper’, который я вручную добавил пустым init.py файл в каждом каталоге, а также на уровне проекта. Моя версия python: 3.8.3 Ниже приведена ошибка, которую я получаю в CMD. ошибка при запуске через командную строку Вот моя структура папок, результат и код при выполнении через test Explorer. sampleTest.py код

globalHelper.py globalHelper.py код

Комментарии:

1. некоторый код может быть полезен

2. Теперь вы можете видеть код?

3. можете ли вы показать sampleTest? также нет необходимости в пустых __init__.py файлах. Но из того, что я вижу, вам нужно импортировать следующим образом from Helper.globalHelper import ReturnSomething

4. Я добавил sampleTest.py как хорошо. Код состоит всего из 12 строк.

Ответ №1:

во-первых, нет необходимости в пустых __init__.py файлах в этих других каталогах. Теперь, чтобы импортировать модуль, который находится в каталоге, используйте:

 from dir_name.module_name import what_you_need
  

надеюсь, я не перепутал некоторые термины и вы поняли, что я имел в виду

Комментарии:

1. Я все еще получаю ту же ошибку при выполнении этого. из Helper.globalHelper импорт возвращает ошибку модуля ModuleNotFoundError: нет модуля с именем ‘Helper’

2. как я уже сказал, скрипт, в который вы импортируете, должен находиться в том же каталоге, Helper что и каталог, а затем должен быть и этот __init__ каталог, поэтому три вещи: main file , module directory и default directories that are already created должны быть в том же каталоге

3. Спасибо, Матиис. Импорт в тот же каталог работает! Но есть ли какая-либо причина, по которой он не работает из командной строки, когда он находится в другом каталоге? Он отлично работает, когда я выполняю его из test Explorer при использовании двух каталогов. Поскольку я пытаюсь создать фреймворк, я хотел бы иметь соответствующие каталоги для тестовых данных, утилит, тестовых примеров и т.д. Еще раз спасибо.

4. возможно, потому, что он не может получить доступ к этому файлу, потому что он, возможно, ищет встроенные каталоги и не может их найти