#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. возможно, потому, что он не может получить доступ к этому файлу, потому что он, возможно, ищет встроенные каталоги и не может их найти