Pydev показывает нерешенный импорт, но script работает?

Я использую PyDev.

Я пытаюсь организовать классы проектов в пакетах.

например. В папке у меня есть модуль в /libraries/fund _price_library.py

В другом файле в моем проекте я пытаюсь импортировать, используя:

from libraries.fund_price_library import FundPriceLibrary as fpl

PyDev подчеркивает "FundPriceLibrary как fpl" красным цветом, отмечая его этой ошибкой:

unresolved import fpl

Однако мой script работает отлично, поэтому я считаю, что правильно делаю импорт.

У меня много подобных ошибок по всему моему проекту, и это выглядит беспорядочно. Однако мой код python работает, поэтому я предполагаю, что я правильно импортирую.

Как я могу подавить эти ошибки?

Ответ 1

Этот вопрос может содержать решение вашей проблемы.

В свойствах вашего проекта pydev есть панель под названием "PyDev - PYTHONPATH" с подпанелей под названием "Внешние библиотеки". Вы можете добавить исходные папки (любую папку с init.py) в путь, используя эту панель. После этого код проекта сможет импортировать модули из этих исходных папок.

Возможно, PyDev не знает, где найти файлы.

Ответ 2

Python 3 имеет неявные пакеты пространства имен, поэтому __init__.py файлы в подпакетах не являются обязательными. Однако, похоже, PyDev все еще нуждается в них.

Моим решением было добавить пустые __init__.py файлы в подпакеты.

Ответ 3

У меня была такая же проблема. Решение (у меня есть Eclipse 4.6 w/Pydev 5.6):

Project > Properties > PyDev - PYTHONPATH > tab Source Folders

Сделайте это: Add source folder (кнопка) и добавьте ваш (текущий) исходный каталог, в моем случае это был src subdir, чтобы в окне появился новый элемент: /${PROJECT_DIR_NAME}/src

Итак, теперь у меня есть это:

/${PROJECT_DIR_NAME}
/${PROJECT_DIR_NAME}/src

и мой PyDev счастлив сейчас:)

Ответ 4

Быстрое и грязное решение:

Возможно, вы можете сказать pydev игнорировать ошибку импорта, используя разметку UnresolvedImport в вашем коде. См. how-can-i-make-the-pydev-editor-selectively-ignore-errors для обсуждения темы.

PS Если вы используете pydev в eclipse, ctrl + 1 должен предложить это решение.

Ответ 5

Я столкнулся с этой проблемой в новом проекте, с ошибками "неразрешенного импорта" импортированный символ на самом деле еще не используется.
Это оказалось проблемой только тогда, когда имя "проекта" затмения и имя "пакета" лежащего в основе python совпадают. Когда я изменил имя проекта eclipse на другое, сообщения об ошибках исчезли (кажется, что где-то может быть ошибка).

Кстати: используя Eclipse 2018-12 (4.10.0), с PyDev версии 7.1.0.201902031515