Найти - Пользователи
Полная версия: Unable to import ... pylint(import-error) что делаю не так?
Начало » Python для новичков » Unable to import ... pylint(import-error) что делаю не так?
1
IgorDV
Модуль импортируется, доступ к содержимому есть.
И все равно подчеркивает import - Unable to import ‘util_date’pylint(import-error)

Python:
import sys
import os
sys.path.append(os.path.join(sys.path, ‘..\\util’))
from datetime import date
import util_date

ОС win10
python 3.8
ide VScode
py.user.next
Попробуй добавить абсолютный путь к модулю, а не относительный.
Вообще, конечно, трогать sys.path - так себе идея. Нужно правильно файлы проекта все разместить и потом запускаться правильно тоже.

IgorDV
Модуль импортируется
Импортируется при каких условиях? В какой директории ты в это время находишься? Просто линтер может там не находиться при своём запуске, поэтому и не может симпортировать модуль.
FishHook
IgorDV
Модуль импортируется, доступ к содержимому есть.
И все равно подчеркивает import - Unable to import ‘util_date’pylint(import-error)
Ну это сугубо ограничения IDE.
Вы же понимаете, что для того, чтобы правильно импортировать модуль util_date надо выполнить код?
Вот эта ваша строка
 sys.path.append(os.path.join(sys.path, ..\\util))
должна быть выполнена перед импортом. Это не магия, не специальный синтаксис, это обычный вызов функции в питоне.
А теперь подумайте, а откуда IDE должна знать, что пути к библиотеке меняются по ходу выполнения программы? Откуда она знает, что вы вызываете функцию, которая добавляет путь к каталогу вашего модуля? Вы подразумеваете, что IDE выполняет код, который читает. Это было бы вообще говоря довольно опасное поведение, давайте представим, что мы пишем программу, котоая удаляет все файлы из домашней директории. И вот мы написали программу, а ИДЕ взяла и без спроса её выполнила.
Ну и вообще, кто мешает написать вот такой код
 if DEVELOP:
    sys.path.append(os.path.join(sys.path, 'develop',  'util'))
elif PRODUCTION:
    sys.path.append(os.path.join(sys.path, 'prod',  'util'))
elif TEST:
    .....
И как ваша ИДЕ должна определить, какой именно модуль вы собрались поключать?
4kpt_V
pylint статический анализатор.
Как правильно написал FishHook он не выполняет никаких действий в коде. Он просто парсит его “как есть” без запуска.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB