Неразрешенный импорт: модели
Я делаю свой ОЧЕНЬ первый проект, используя 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 на новое имя, и это устранило ошибку.