Неразрешенные проблемы импорта с PyDev и Eclipse

Я очень новичок в PyDev и Python, хотя я много использовал Eclipse для Java. Я пытаюсь работать с некоторыми примерами Dive Into Python, и это кажется чрезвычайно тривиальной проблемой, которая просто становится чрезвычайно раздражающей. Я использую Ubuntu Linux 10.04.

Я хочу иметь возможность использовать файл odbchelper.py, который находится в каталоге /Desktop/Python_Tutorials/diveintopython/py

Вот мой файл example.py, над которым я работаю в моем проекте PyDev / Eclipse:

 import sys sys.path.append("~/Desktop/Python_Tutorials/diveintopython/py") 

Это прекрасно работает, но тогда я хочу, чтобы следующая строка моего кода была:

 import odbchelper 

и это вызывает неразрешенную ошибку импорта каждый раз. Я добавил файлы __init__.py практически в любую директорию, и это ничего не помогает. Я попытался добавить файлы __init__.py одному на разные уровни каталогов между местоположением проекта и файлом odbchelper.py, и я также попытался добавить файлы __init__.py во все каталоги между ними одновременно , Ничего не работает.

Все, что я хочу сделать, это проект где-то в другом каталоге, например /Desktop/MyStuff/Project , в котором у меня есть example.py … а затем из example.py. Я хочу импортировать odbchelper.py из /Desktop/Python_Tutorials/diveintopython/py/

Каждый ответ на доску объявлений, который я могу найти, просто говорит, чтобы использовать sys.path.append() чтобы добавить этот каталог к ​​моему пути, а затем импортировать его … но это именно то, что я делаю в своем коде, и оно не работает ,

Я также попробовал трюк Ctrl- 1, чтобы подавить сообщение об ошибке, но программа все еще работает неправильно. Я получаю сообщение об ошибке, ImportError: No module named odbchelper . Таким образом, явно не получается добавить путь, или есть какая-то проблема, что все мои перестановки в добавлении файлов __init__.py пропущены.

Очень неприятно, что что-то такое простое … вызов вещей из какого-то файла, который существует где-то еще на моей машине … требует больших усилий.

9 Solutions collect form web for “Неразрешенные проблемы импорта с PyDev и Eclipse”

В свойствах вашего проекта pydev есть панель под названием «PyDev – PYTHONPATH» с подпанелей под названием «Внешние библиотеки». Вы можете добавить исходные папки (любую папку с __init__.py ) в путь, используя эту панель. Затем код проекта сможет импортировать модули из этих исходных папок.

Я только что обновил проект WXWindows до Python 2.7 и не имел никаких проблем с получением Pydev для распознавания нового интерпретатора. Сделал то же самое, что и выше, настроив интерпретатор, сделал новую установку Eclipse и Pydev. Подумал, что часть python, должно быть, была повреждена, поэтому я снова установил все. Arghh! Закрыл и снова открыл проект и перезапустил Eclipse между всеми этими изменениями.

НАКОНЕЦ заметил, что вы можете «удалить конфигурацию проекта PyDev», щелкнув правой кнопкой мыши по проекту. Затем его можно снова превратить в проект PyDev, теперь это хорошо, как золото!

Я использую eclipse kepler 4.3, PyDev 3.9.2, и на моем ubuntu 14.04 я столкнулся с той же проблемой. Я пробовал и проводил часы, со всеми вышеперечисленными вариантами, но напрасно. Затем я попробовал следующее, что было замечательно:

  • Выбрать проект -> RightClick-> PyDev -> Удалить конфигурацию проекта PyDev
  • file-> restart

И я использовал Python 2.7 в качестве интерпретатора, хотя, по-моему, это не влияет.

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

Я щелкнул правой кнопкой мыши по проекту-> Pydev-> Remove error markers и избавился от этой проблемы. Не беспокойтесь, если ваш код содержит фактические ошибки, они будут повторно отмечены.

project -> properties -> pydev-pythonpath -> внешние библиотеки -> добавить исходную папку, добавить PARENT FOLDER проекта. Затем перезапустите eclipse.

Вот что сработало для меня (sugested от soulBit):

 1) Restart using restart from the file menu 2) Once it started again, manually close and open it. 

Это самое простое решение когда-либо, и оно полностью устраняет раздражающую вещь.

Существует два способа решения этой проблемы:

  • Удалите интерпретатор Python из «интерпретаторов Python» и добавьте его снова.
  • Или просто добавьте папку с библиотеками в интерпретаторе, который вы используете в своем проекте, в моем случае я использовал «бутылку», а папка, которую я добавил, была «c: \ Python33 \ Lib \ site-packages \ bottle-0.11.6 -py3.3.egg»

Теперь я больше не вижу ошибки, и функция завершения кода работает также с «бутылкой».

Я запускаю Eclipse 4.2.0 (Juno) и PyDev 2.8.1, и столкнулся с этой проблемой, когда lib установлен на мой путь к пакетам сайтов. В соответствии с этим вопросом SO:

Файлы Pydev и * .pyc

… есть проблема с файлами PyDev и pyc. В случае конкретной библиотеки, с которой я пытался ссылаться, все, что доставлено, – это файлы pyc.

Вот что я сделал для решения этой проблемы:

  1. Установите uncompyle2 с https://github.com/Mysterie/uncompyle2
  2. Запустите uncompyle2 в файлах * .pyc в папке site-packages lib. Пример:

    uncompyle2 -r -o / tmp / путь / в / site-packages / lib

  3. Переименуйте полученные файлы * .pyc_dis, созданные из uncompyle2, на * .py
  4. Перенесите / скопируйте эти * .py файлы в путь пакетов сайтов
  5. В Eclipse выберите «Файл»> «Перезагрузка»

Неразрешенная ошибка импорта, относящаяся к файлам .pyc, теперь должна исчезнуть.

Следуя, на мой взгляд, решим проблему

  1. Добавление init .py в папку "~ / Desktop / Python_Tutorials / diveintopython / py"
  2. Перейдите в Window -> Preferences -> PyDev -> Interpreters -> Python Interpreter, чтобы удалить настройку Python Interpreter (причина в том, что PyDev не может автоматически обновлять любые обновления, сделанные для любой System PythonPath)
  3. Добавьте в интерпретаторе те же данные, что и раньше (это обновит настройку Python Interpreter обновлениями, сделанными на вашем PythonPath)
  4. Наконец, поскольку ваша папка «~ / Desktop / Python_Tutorials / diveintopython / py» не стандартная PythonPath, вам нужно добавить ее. Есть два способа сделать это

а. В соответствии с предложением Дэвида Германа. Однако это применимо только к конкретным проектам, которые вы находитесь на b. Добавить в «~ / Desktop / Python_Tutorials / diveintopython / py» в новый PythonPath под окном -> Настройки -> PyDev -> Интерпретаторы -> Python Interpreter -> Библиотеки subtab -> NewFolder

Надеюсь, поможет.

  • Почему одно заявление __import__ влияет на справедливость следующего?
  • Стандарт кодирования порядка импорта
  • python круговой импорт еще раз (что-то не так с этим дизайном)
  • Импорт файлов из разных папок
  • import matplotlib.pyplot зависает
  • Предотвращение кэширования Python импортированными модулями
  • Модуль Python, не определенный в модуле при использовании пользовательской функции загрузки
  • Как протестировать или издеваться над содержимым «if __name__ == '__main__»
  • Python ImportError - NUMPY MKL
  • Почему Python не может импортировать изображение из PIL?
  • Модуль импорта проблем в Python
  • Python - лучший язык программирования в мире.