#python #eclipse #configuration #import #pydev
#python #eclipse #конфигурация #импорт #pydev
Вопрос:
У меня проблема с получением PyDev в eclipse для распознавания уже установленных модулей. Вот мой подробный подход. Это компьютер Mac (Snow Leopard).
В терминале команда
python --version
показывает Python 2.6.6.
import unidecode
и
from unidecode import unidecode
оба работают нормально!
Я установил PyDev в Eclipse и перешел к настройке интерпретатора python (автоматическая настройка). Я выбрал все предложенные пакеты и нажал Применить и Ок.
Но eclipse продолжает жаловаться
Traceback (most recent call last):
File "/Users/me/Documents/workspace/myproject/python/pythontest.py", line 12, in <module>
from unidecode import unidecode
ImportError: No module named unidecode
Файл python выглядит следующим образом
#!/usr/bin/env python
# encoding: utf-8
import sys
import os
from unidecode import unidecode
def main():
print unidecode(u"Ågot Aakra")
if __name__ == '__main__':
main()
Когда я удаляю первую строку в скрипте
#!/usr/bin/env python
это приводит к той же ошибке.
Кто-нибудь знает, в чем проблема?
Комментарии:
1. если у вас более одной версии python, убедитесь, что в pydev вы ссылаетесь на одну и ту же версию
2. @Abdul: В нижнем поле опции меню Интерпретаторы Python импортированные модули, похоже, тоже относятся к python 2.6. В пути к каждой строке указан python 2.6. Возможно, я должен упомянуть, что это Mac (Snow Leopard)
3. В какой папке хранится модуль unidecode? Отображается ли эта папка в системном окне PYTHONPATH в Eclipse?
4. @Stephen: Спасибо за вашу подсказку. Это помогло мне найти решение.
Ответ №1:
Это решение моей проблемы:
- Узнайте путь к папке
../site-packages/
вашей соответствующей версии python. (Для меня это было/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/
для python 2.6 на моем Mac с Snoe Leopard.) - Откройте настройки eclipse и перейдите в PyDev -> Интерпретатор — Python.
- В левой части нижнего окна нажмите на Новую папку.
- Добавьте navigate to
../site-packages/
вашей соответствующей версии python. - Нажмите открыть.
- Нажмите Применить.
- Нажмите Ok.
И у вас все должно получиться. =)
Спасибо @all particionts, которые предоставили подсказки в правильном направлении в комментариях.
Комментарии:
1. Не забудьте проверить, что там что-то есть 🙂 Например. scipy не установлен с установкой python по умолчанию
2. Все еще работает. Но дополнительно мне потребовался перезапуск eclipse.
Ответ №2:
Я столкнулся с такой же проблемой только сегодня. Я использую pydev, и у меня был рабочий проект с несколькими подпакетами. Внезапно после создания нового модуля я не смог использовать этот модуль в другом пакете. Озадачивающей особенностью было то, что я мог использовать другой модуль в том же подпакете…
Наконец, после
- перезапуск eclipse
- удалите / добавьте интерпретатор python и все пакеты сайта
- раздраженное почесывание головы
Я удалил все скомпилированные классы с помощью следующего скрипта:
import os
def clean_folder(folder):
for file in os.listdir(folder):
path = os.path.join(folder,file)
if os.path.isdir(path):
clean_folder(path)
if '.pyc' == file[-4:]:
print 'deleting: ' str(path)
os.remove(path)
if __name__ == '__main__':
folder = 'YOUR_PROJECT_SRC_PATH'
clean_folder(folder)
и, наконец, я могу выполнять «реальную» работу 🙂
Надеюсь, это кому-нибудь поможет…
Ответ №3:
Вы можете просто добавить модуль в путь к pydev. Перейдите в свойства проекта (из контекстного меню) -> PyDev -> PYTHONPATH -> Внешние библиотеки. В зависимости от того, находится ли модуль в исходной папке или в файле zip / egg, выберите либо Добавить исходную папку, либо Добавить zip / jar / egg. Перейдите в каталог site-packages и укажите на соответствующий файл или папку (мой: /usr/local/lib/pythonx.x/site-packages)
Комментарии:
1. Спасибо! перепробовал так много решений, что это, наконец, сделало свое дело, после перезапуска eclipse (используя python3.5 на виртуальной машине Ubuntu)
Ответ №4:
Попробуйте настройки> pydev> интерпретатор — python и удалите и повторно добавьте интерпретатор python (убедитесь, что вы знаете путь к нему, прежде чем удалять его), при повторном добавлении отметьте все флажки.
Комментарии:
1. Я уже это сделал. Это не помогло. Я нашел решение самостоятельно, но спасибо за ваши усилия. =)
Ответ №5:
Когда Eclipse «теряется» в отношении того, какие пакеты существуют в вашей системе или в вашем проекте, в контекстном меню вашего проекта выберите пункт меню «Свойства», затем пункт «PyDev — PYTHONPATH» в treeview слева от диалогового окна, затем кнопку «Принудительно восстановить внутреннюю информацию». По-видимому, PyDev хранит вычисленный кэш информации, и когда по какой-либо причине кэш становится некогерентным, вы можете заставить PyDev пересчитать.
Ответ №6:
В моем случае я не получал эту ошибку перед компиляцией, но при компиляции я получил ошибку ImportError: нет модуля с именем myant.core. Я попытался добавить файлы из PyDev-PYTHONPATH, но снова получил ту же ошибку. Затем я понял, что на самом деле мне не нужно добавлять путь точно к папке, в которой находятся мои файлы .py. Фактически я должен добавить папку, в которой находится myant.core. После этого я сделал перезапуск, когда я снова перекомпилировал свой проект, проблема была исправлена. Я бы поделился тем, что у меня есть:
Python 2.7 Eclipse kepler 4.3, PyDev 3.9.2 и на моем ubuntu 14.04
расположение файлов.py: /${PROJECT_DIR_NAME}/src/myant/core
, поэтому я добавил /${PROJECT_DIR_NAME}/src
Ответ №7:
@Aufwind ваш ответ выше помог, но не решил для меня.
- Найдите путь к папке ../site-packages/ ….
- Откройте настройки eclipse и перейдите в PyDev -> Интерпретатор — Python.
- В левой части нижнего окна нажмите на Новую папку. —> здесь я отступил от ваших инструкций. Я добавил яйцо для модуля, который не был распознан. Добавление папки site-packages не исправило это.
- Нажмите открыть.
- Нажмите Применить.
- Нажмите Ok.
И тогда я был готов к работе. =)
Ответ №8:
- Откройте окно eclipse -> настройки и перейдите в PyDev -> Интерпретатор.
- нажмите «Проверить, синхронизированы ли интерпретаторы со средой»
Это сделало это за меня. Перезапуск Eclipse не требовался.
Ответ №9:
Я исправил эту проблему, перейдя в свойства проекта -> PyDev Django и установив модуль настроек Django.
Ответ №10:
Для Oxygen 2 (я думаю, что это работало и в более ранних версиях)…
- Щелкните правой кнопкой мыши на папке проекта и выберите «Свойства»
- Выберите «PyDev — Интерпретатор / грамматика»
- Нажмите «Нажмите здесь, чтобы настроить интерпретатор, которого нет в списке»
- Выберите любой существующий интерпретатор из верхнего списка настроенных интерпретаторов
- Должно появиться диалоговое окно «Требуется выбор», в котором вы должны выбрать один или несколько интерпретаторов для восстановления. Проверьте все, что применимо
- Нажмите «ОК», и PyDev выполнит повторную проверку, и, я полагаю, перестроит некоторое внутреннее представление вашего сайта-пакеты
- Нажмите «Применить и закрыть», чтобы закрыть все диалоговые окна
Чтобы разметка ошибки импорта исчезла в моем редакторе кода, мне нужно ввести пробел после некорректного импорта, а затем сохранить изменение. Затем ошибка импорта исчезает, потому что PyDev теперь может найти модуль импорта-нарушителя.
Ответ №11:
Предположим, что ваш вечный модуль находится в / .
Запустите Eclipse и перейдите к опции project. Выберите «PyDev-PYTHONPATH», и справа вы увидите окно с вкладками. Выберите там внешние библиотеки. Нажмите «Добавить исходную папку» и выберите свою библиотеку по указанному выше пути.