Неразрешенный импорт: модели - PullRequest
16 голосов
/ 06 июня 2010

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

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

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

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

Есть идеи?

EDIT

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

Ответы [ 9 ]

16 голосов
/ 06 июня 2010

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

6 голосов
/ 14 июня 2010

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

/Library/Python/2.6/site-packages

к моей системной PYTHONPATH (находится в: Настройки> Pydev> Интерпретатор - Python)

Эквивалентом для Ubuntu 10.04 будет:

/usr/lib/pymodules/python2.6

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

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

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

5 голосов
/ 06 июня 2010

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

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

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

3 голосов
/ 05 февраля 2014

Даже если Lib / site-packages добавлен в PYTHONPATH, эта проблема может возникнуть при использовании модулей из пакетов egg, установленных с помощью 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 -> Select your intepreter -> на панели интерпретаторов python, удалите и снова добавьте ваш текущий интерпретатор python (обычно это должен быть исполняемый файл python из системы). Затем перезапуск PyDev (File -> Restart) должен устранить ошибки «Unresolved import».

3 голосов
/ 02 августа 2010

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

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

2 голосов
/ 23 марта 2015

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

2 голосов
/ 06 июня 2010

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

1 голос
/ 08 февраля 2018

У меня была та же ошибка, и ни один из ответов не работал для меня, так как не было опций PYTHONPATH в Window -> Preferences -> PyDev -> Python.

Вместо этого я добавил настройку PYTHONPATH в меню:

Проект -> PyDev-PYTHONPATH -> Внешние библиотеки -> Добавить исходную папку

Я добавил путь к сайтам-пакетам вроде

/ Главная / Документы / HCX / venv / Библиотека / python3.5 / сайт-пакеты

Теперь ПиДев перестал жаловаться.

1 голос
/ 10 мая 2012

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

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

from xyz_module import abc

Итак, я нажал «Ctl + 1» и «выбрать неразрешенную ошибку импорта» в eclipse, и он создал класс файл в файле Python.

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

...