Как обрабатывать 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
на свой компьютерный диск. После этого шага ошибка исчезнет.