Как обрабатывать UnresolvedImport Eclipse (Python)

Когда я пишу import MySQLdb в Eclipse, используя плагин PyDev, я получаю неразрешенный импорт. Однако программа работает без ошибок. Я могу добавить аннотацию, чтобы заставить ошибку уйти, но каков правильный способ справиться с этим?

Как я могу помочь Eclipse узнать, что MySQLdb существует?

Ответ 1

Похоже, что MySQLdb находится где-то на вашем sys.path, но не на вашем проекте Eclipse PYTHONPATH; другими словами, Eclipse думает, что вы получите ошибку импорта во время выполнения, потому что вы не полностью настроили его. Google, похоже, говорит, что вы можете изменить этот параметр в Window->Preferences->Preferences->PyDev->Python Interpreter, чтобы включить путь к вашему модулю MySQLdb.

С некоторой помощью выясните, где MySQLdb может жить в вашей системе:

  • Откройте интерактивный интерпретатор,
  • import MySQLdb
  • Если это удастся, вы можете получить подсказку: print MySQLdb.__file__; это может быть файл __init__ в пакете, который вам нужно указать в пути.

Ответ 2

cdleary выше предоставил причину два года назад, но это может быть проще. В принципе, один переустанавливает интерпретатор.

  • Выбрать окно → Настройки → PyDev → Интерпретатор - Python
  • Выберите интерпретатор python в верхней панели
  • Нажмите "Удалить"
  • Нажмите "Автонастройка"
  • Соглашайтесь со всем.

Это работает на Fedora 17 с использованием Eclipse 4.2.0, который поставляется с управлением пакетами.

Ответ 3

Исправлено это, выполнив две вещи:

1) Добавлено MySQLdb-яйцо в PYTHONPATH в окне Window- > Preferences- > Preferences- > PyDev- > Python Interpreter.

C:\Python26\Lib\site-packages\MySQL_python-1.2.3c1-py2.6-win32.egg

2) Закройте и снова откройте файл .py с красным x.

Ответ 4

У меня когда-то была аналогичная проблема в Windows (никогда не встречал этого в Linux), и я обнаружил, что мне пришлось включить каталог .egg моей библиотеки в PYTHONPATH.

Например, мой PYTHONPATH (Pydev/Interpreter - Python/Libraries) включал:

C:\Python26\Lib\site-packages

и мне пришлось добавить:

C:\Python26\Lib\site-packages\jinja2-2.2.1-py2.6.egg

использовать jinja.

Ответ 5

Добавление яичных работ, но ошибка остается. Решение этой ошибки можно найти, добавив

#@UnresolvedImport

В инструкции import, как в:

import web #@UnresolvedImport

Источник: http://klaith.wordpress.com/2009/06/12/pydev-unresolved-import-errors/

Ответ 6

Это, безусловно, работает, я просто попробовал его с пакетом Pmw. Разархивируйте пакет в сайт-пакеты. Затем удалите интерпретатор python из eclipse и затем добавьте его снова. Ошибки импорта должны исчезнуть. также вы можете захотеть добавить модуль к принудительным встроенным. См. Как исправить переменную PyDev "Undefined из импорта" ошибки? и http://pydev.org/manual_101_interpreter.html

Ответ 7

У меня была аналогичная проблема, и вот что я сделал для решения моей проблемы. У меня есть машина Windows 8, Python 2.7 установлен и запускает мои вещи через eclipse.

Некоторые сведения:

Когда я сделал easy install, он попытался установить MySQL-python 1.2.5, который не удалось с помощью error: Unable to find vcvarsall.bat. Я сделал easy_install из pip и попробовал установку pip, которая также потерпела неудачу с аналогичной ошибкой. Они оба ссылаются на vcvarsall.bat, что связано с визуальной студией, так как у меня нет визуальной студии на моей машине, это оставило меня в поиске другого решения, которое я разделяю ниже.

Решение:

После того, как я сделал обе эти установки, я снова открыл eclipse и получил приглашение обновить пути eclipse, которые я принял, после чего я смог запросить мой MySQL db.

Ответ 8

import MySQLdb

Если этот код показывает ошибку, например:

Неразрешенный импорт: MySQLdb

вы должны добавить D:\Python27\Lib\site-packages\MySQLdb к вашему sys.path.

D:\Python27\Lib\site-packages\MySQLdb - это место, где вы устанавливаете MySQLdb на свой компьютерный диск. После этого шага ошибка исчезнет.