Уведомления

Группа в Telegram: @pythonsu

#1 Июль 7, 2020 11:25:17

IgorDV
Зарегистрирован: 2020-07-07
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Unable to import ... pylint(import-error) что делаю не так?

Модуль импортируется, доступ к содержимому есть.
И все равно подчеркивает 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

Офлайн

#2 Июль 7, 2020 12:56:27

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Unable to import ... pylint(import-error) что делаю не так?

Попробуй добавить абсолютный путь к модулю, а не относительный.
Вообще, конечно, трогать sys.path - так себе идея. Нужно правильно файлы проекта все разместить и потом запускаться правильно тоже.

IgorDV
Модуль импортируется
Импортируется при каких условиях? В какой директории ты в это время находишься? Просто линтер может там не находиться при своём запуске, поэтому и не может симпортировать модуль.



Офлайн

#3 Июль 7, 2020 13:48:12

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Unable to import ... pylint(import-error) что делаю не так?

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:
    .....
И как ваша ИДЕ должна определить, какой именно модуль вы собрались поключать?



Офлайн

#4 Июль 9, 2020 00:59:06

4kpt_V
От: Харьков
Зарегистрирован: 2017-02-19
Сообщения: 299
Репутация: +  12  -
Профиль   Отправить e-mail  

Unable to import ... pylint(import-error) что делаю не так?

pylint статический анализатор.
Как правильно написал FishHook он не выполняет никаких действий в коде. Он просто парсит его “как есть” без запуска.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version