Нерешенные проблемы импорта с PyDev и Eclipse
Я очень новичок в PyDev и Python, хотя я использовал Eclipse для Java много. Я пытаюсь работать с некоторыми примерами погружения в 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
файлы пропустил.
это очень расстраивает, что что-то такое простое... называя вещи из какого-то файла, который существует где-то еще на моей машине... это требует больших усилий.
10 ответов:
в свойствах для вашего проекта pydev есть панель под названием "PyDev-PYTHONPATH", с подпанелью под названием"внешние библиотеки". Вы можете добавить исходные папки (любую папку, которая имеет
__init__.py
) к пути с помощью этой панели. Затем код проекта сможет импортировать модули из этих исходных папок.
Я только что обновил проект WXWindows до Python 2.7 и не имел никаких проблем с тем, чтобы Pydev узнал новый интерпретатор. Сделал то же самое, что и выше настройка интерпретатора, сделал новую установку Eclipse и Pydev. Думал, что какая-то часть python, должно быть, была повреждена, поэтому я снова установил все заново. ААА! Закрыл и снова открыл проект, а также перезапустил Eclipse между всеми этими изменениями.
наконец заметил, что вы можете "удалить конфигурацию проекта PyDev" справа щелчок по проекту. Тогда его можно снова превратить в проект PyDev, теперь он хорош как золото!
Я использую eclipse kepler 4.3, PyDev 3.9.2 и на моем ubuntu 14.04 я столкнулся с той же проблемой. Я пытался и потратил часы, со всеми вышеперечисленными большинство вариантов, но напрасно. Затем я попробовал следующее, что было здорово:
- выберите проект - > щелкните правой кнопкой мыши ->пункт PyDev -> Удалить PyDev Project Config
- file ->перезагрузка
и я использовал Python 2.7 в качестве интерпретатора, хотя это не влияет, я думаю.
я исправил свой pythonpath, и все было денди, когда я импортировал материал через консоль, но все эти ранее неразрешенные импорта были по-прежнему отмечены как ошибки в моем коде, независимо от того, сколько раз я перезапустил eclipse или обновил/очистил проект.
Я щелкнул Правой Кнопкой Мыши проект- > Pydev - > удалить маркеры ошибок, и он избавился от этой проблемы. Не волнуйтесь, если ваш код содержит фактические ошибки, они будут отмечены.
проект-- > свойства-->pydev-pythonpath-->внешние библиотеки -- > добавить исходная папка, добавьте родительскую папку проекта. Затем перезапустите Eclipse.
вот то, что работал для меня (мотивационные по соулбит):
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.яйцо"
теперь я больше не вижу ошибки, и функция завершения кода работает также с "бутылка."
Я запускаю Eclipse 4.2.0 (Juno) и PyDev 2.8.1, и столкнулся с этой проблемой с lib, установленным в путь к моему сайту-пакетам. Согласно этому так вопрос:
...существует проблема с файлами PyDev и pyc. В случае конкретного lib, на который я пытался ссылаться, все, что поставляется, - это файлы pyc.
вот что я сделал, чтобы решить эту проблему:
- установить uncompyle2 из https://github.com/Mysterie/uncompyle2
запустить uncompyle2 против *.pyc файлы на сайте-пакеты lib. Пример:
uncompyle2-r-o / tmp / path / to / site-packages / lib
- переименовать получившийся *.pyc_dis файлы, созданные из uncompyle2 в*. py
- переместить / скопировать эти*. py файлы на сайт-пакеты путь
- в Eclipse, выберите File > перезагрузка
неурегулированность импорта ошибка, связанная С.файлы pyc теперь должны исчезнуть.
следующие, на мой взгляд, решат проблему
- добавлять инициализации.пы своей "~/рабочий стол/Python_Tutorials/diveintopython/пы папку"
- перейдите в окно -- > настройки --> PyDev -- > интерпретаторы --> интерпретатор Python, чтобы удалить настройки интерпретатора Python (причина в том, что PyDev не может автоматически обновлять любые обновления, сделанные в любой системе PythonPath)
- добавить в интерпретатор с теми же деталями, как и раньше (это будет обновите настройки интерпретатора Python с помощью обновлений, внесенных в ваш PythonPath)
- наконец, поскольку ваша папка" ~/Desktop/Python_Tutorials/diveintopython/py " не является стандартным PythonPath, вам нужно будет добавить ее. Есть два способа сделать это
a. согласно тому, что предложил Дэвид Герман. Однако это применимо только для конкретных проектов, в которых вы находитесь b. добавьте в "~ / Desktop / Python_Tutorials/diveintopython/py" в новый PythonPath под окном -- > настройки --> Пункт PyDev --> переводчики --> интерпретатор Python --> библиотеки вкладке -- > "Создать папку"
надеюсь, что это помогает.
KD.py class A: a=10; KD2.py from com.jbk.KD import A; class B: b=120; aa=A(); print(aa.a)
это прекрасно работает файл для меня
другой пример:
main.py ======= from com.jbk.scenarios.objectcreation.settings import _init from com.jbk.scenarios.objectcreation.subfile import stuff _init(); stuff(); settings.py ========== def _init(): print("kiran") subfile.py ========== def stuff(): print("asasas")