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