Как исправить ошибку pylint (import-error) в коде Visual Studio при попытке импортировать пользовательские библиотеки? - PullRequest
0 голосов
/ 20 июня 2019

Я работаю над кодом Python в python3, который импортирует несколько пользовательских библиотек. Эти библиотеки расположены в файловой структуре. У меня нет проблем с импортом этих библиотек, когда код запускается из командного окна, однако при открытии файлов в коде Visual Studio Pylint выдает ошибку импорта для всех импортируемых пользовательских библиотек.

Я провел много разочаровывающих исследований по этой проблеме и вижу, что у многих людей были похожие проблемы. Однако я не мог заставить работать ни одно из перечисленных решений, но многие из них я не понимал достаточно, чтобы даже попробовать. Я попытался удалить и переустановить VScode, Pylint и само расширение Python. Я пробовал кое-что связать с launch.json и settings.json, но я никогда раньше ничего не делал с файлами json и ничего, что я делал, казалось, не имело никакого значения. У меня установлена ​​только одна среда Python. Я попытался открыть папку с помощью «Файл-> Открыть папку ...» вместо использования метода контекстного окна. В коде используется sys.path.append, чтобы можно было найти правильный каталог с библиотекой, и, как я уже сказал, это прекрасно работает при запуске из командного окна.

Другое решение, которое я увидел, это добавление строки

init-hook='import sys; sys.path.append("/path/to/root")'

в файл ~ / .pylintrc. Я думаю Я сделал это, и снова это не решило мою проблему. Однако было мало объяснений, что это за файл, где его искать или какой именно путь ему нужен. Я просто искал «.pylintrc» в своем файловом проводнике и нашел файл, названный именно тем, куда я положил строку. «Путь к корню» я получил, перейдя в папку, в которой содержались все библиотеки в подпапках, затем скопировал / вставил путь к файлу.

Ниже приведен пример импорта библиотеки. Это работает, только не так, как Pylint или VScode.

#Custom libraries
sys.path.append(os.path.join( '../..', 'common', 'appdata'))
import appdata

"Невозможно импортировать пилинт 'appdata' (ошибка импорта)" отображается как ошибка при импорте

если я пытаюсь отладить, я получаю сообщение

"Произошло исключение: ImportError Нет модуля с именем appdata "

Я ценю любую помощь, которая может быть оказана. Спасибо.

1 Ответ

0 голосов
/ 21 июня 2019

A .pylintrc - это файл конфигурации для Pylint.Pylint документирует, как он находит pylintrc файл .

Проблема в том, что Pylint не выполняет ваш код, поэтому пользовательские манипуляции с sys.path не известны Pylint.Итак, вам нужно выяснить, как заставить Pylint рассматривать эту папку в вашем коде как часть sys.path.Один способ - указать PYTHONPATH, другой - указать его в файле .pylintrc.

PS: sys.path.append(os.path.join( '../..', 'common', 'appdata')) должно быть sys.path.append(os.path.join( '..', '..', 'common', 'appdata')).

...