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

Я делаю свой ОЧЕНЬ первый проект, используя python/django/eclipse/pydev, следуя этому руководству

http://docs.djangoproject.com/en/dev/intro/tutorial01/

Мое единственное дополнение - использование Eclipse/pydev.

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

Любые идеи?

ИЗМЕНИТЬ

Использование Ubuntu 9.1

Ответ 1

Мне удалось избавиться от ошибок импорта, выполняющих этот cmd

sudo ln -s /usr/lib/pymodules/ /usr/lib/python2.6/pymodules

Мне повезло, проверяя разные вещи, которые я мог решить, но я не уверен, почему я должен это делать и как я мог избежать этого.

Ответ 2

Проверьте свой pythonpath. Вам нужно включить родительский каталог django, обычно Lib/site-packages.

Ответ 3

Я нахожусь в Mac OS X, но все, что мне нужно было сделать, это добавить:

/Library/Python/2.6/site-packages

для моей системы PYTHONPATH (найдено в: Настройки > Pydev > Interpreter - Python)

Эквивалент для Ubuntu 10.04:

/usr/lib/pymodules/python2.6

Я предполагаю, что эквивалент Ubuntu 9.x может быть:

/usr/lib/python2.6/site-packages

Если это не так, и вы устали смотреть, просто перейдите на Ubuntu 10.04, и все будет в порядке.

Ответ 4

"Неразрешенный импорт" возникает, когда Eclipse/Pydev не знает, что вы хотите импортировать. Проверьте настройки Pydev в настройках Eclipse > Interpreter Python. Ваша папка-пакеты сайтов и объекты, которые вы хотите импортировать, должны находиться в Pythonpath.

Также см. http://pydev.org/manual_101_interpreter.html

Ответ 5

Даже если Lib/site-packages добавлены в PYTHONPATH, эта проблема может возникнуть при использовании модулей из пакетов яиц, установленных с помощью easy_install. Проблема с теми, которые могут фактически зависеть от версии easy_install, заключается в том, что по умолчанию они не устанавливаются непосредственно внутри Lib/site-пакетов, а скорее в папке, содержащей полное имя пакета и имеющее суффикс .egg. Например: Lib/site-packages/django_celery-3.0.23-py2.7.egg

Каждый модуль, входящий в пакеты, установленные выше, нуждается в отдельной записи в PYTHONPATH. Если пакеты установлены после установки PyDev в систему, система PYTHONPATH должна быть обновлена ​​в PyDev. Это делается автоматически, перейдя в Window → Preferences → PyDev → Выберите ваш intepreter → в панели интерпретаторов python удалите и повторно добавьте ваш текущий интерпретатор python (обычно это должен быть исполняемый файл python из системы). Затем перезапуск PyDev (File → Restart) должен устранить ошибки "Unresolved import".

Ответ 6

Если вы столкнулись с проблемой неиспользуемых импортов, я должен сказать, что использовать Eclipse в качестве среды IDE, поскольку он предоставляет функциональные возможности для удаления неиспользуемых импортов, нажимая клавиши ctr + shift + O. Или в Eclipse имеется плагин, который также делает то же самое, когда вы сохраняете свой код. Вы можете получить этот плагин с сайта плагина eclipse легко и бесплатно.

Ответ 7

В моем случае модули зависели от setuptools-14.3.1, что вызывало все эти проблемы. После установки setuptools-14.3.1 остальная часть модулей автоматически разрешена.

Ответ 8

У меня была одна ошибка импорта при работе в PyDEV в eclipse.

Я импортировал его как

from xyz_module import abc

Итак, я нажал "Ctl + 1" и "выберите Unresolved import error" в eclipse и создал класс файл в файле python.

Оказалось, что я создал приложение под названием "xyz_module" и файл "xyz_module.py" (с тем же именем), и это вызвало ошибку импорта. Я изменил файл python на новое имя, и это устранило ошибку.