Добавление модулей python к pydev в eclipse приводит к ошибке импорта? - PullRequest
17 голосов
/ 20 мая 2011

У меня проблема с тем, чтобы PyDev при затмении распознавал уже установленные модули.Вот мой детальный подход.Машина Mac (Snow Leopard).

В терминале команда

python --version

показывает Python 2.6.6 .

import unidecode

и

from unidecode import unidecode

работают нормально!

Я установил PyDev в Eclipse и перешел к настройке интерпретатора Python (Auto Config).Я выбрал все предложенные пакеты и нажал Применить и ОК .

Но затмение продолжает жаловаться

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

, это приводит к той же ошибке.

Кто-то знает, где находится проблема?

Ответы [ 11 ]

28 голосов
/ 20 мая 2011

Это решение моей проблемы:

  1. Узнайте путь к папке ../site-packages/ вашей соответствующей версии Python. (Для меня это было /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/ для Python 2.6 на моем Mac с Snoe Leopard.)
  2. Откройте настройки затмения и перейдите к PyDev -> Интерпретатор - Python .
  3. В левой части нижнего поля нажмите Новая папка .
  4. Добавьте навигацию к ../site-packages/ соответствующей версии Python.
  5. Хит Открыть .
  6. Хит Применить .
  7. Hit Ok .

И тебе надо идти. =)

Спасибо всем участникам, которые предоставили подсказки в правильном направлении в комментариях.

2 голосов
/ 20 февраля 2015

Вы можете просто добавить модуль в путь pydev. Зайдите в свойства проекта (из контекстного меню) -> PyDev -> PYTHONPATH -> Внешние библиотеки. В зависимости от того, находится ли модуль в исходной папке или в файле zip / egg, выберите «Добавить исходную папку» или «Добавить zip / jar / egg». Перейдите в каталог site-packages и укажите на соответствующий файл или папку (у меня это: /usr/local/lib/pythonx.x/site-packages)

2 голосов
/ 04 марта 2012

Я столкнулся с той же проблемой только сегодня. Я использую pydev и у меня был рабочий проект с несколькими подпакетами. Внезапно после создания нового модуля я не смог использовать этот модуль в другом пакете. Загадочная особенность заключалась в том, что я мог использовать другой модуль в том же подпакете ...

Наконец, после

  1. перезапуск затмения
  2. удалить / добавить интерпретатор Python и все пакеты сайта
  3. раздражённое царапание головы

Я удалил все скомпилированные классы с помощью следующего скрипта:

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)

и, наконец, я могу выполнять «настоящую» работу :) Надеюсь, это кому-нибудь поможет ...

1 голос
/ 01 апреля 2015

В моем случае я не получал эту ошибку до компиляции, но когда я компилировал, я получил ошибку 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

1 голос
/ 17 февраля 2014

Когда Eclipse теряется в отношении того, какие пакеты существуют в вашей системе или в вашем проекте, в контекстном меню вашего проекта выберите пункт меню «Свойства», затем пункт «PyDev - PYTHONPATH» в древовидном представлении нав левой части диалогового окна, затем нажмите кнопку «Восстановить внутреннюю информацию».Похоже, PyDev хранит вычисленный кеш информации, и когда по какой-либо причине кеш становится несогласованным, вы можете заставить PyDev пересчитать.

0 голосов
/ 22 февраля 2018

Для Кислорода 2 (я думаю, это работало и на более ранних версиях) ...

  1. Щелкните правой кнопкой мыши папку проекта и выберите «Свойства»
  2. Выберите «PyDev - Переводчик / Грамматика»
  3. Нажмите «Нажмите, чтобы настроить переводчика, которого нет в списке»
  4. Выберите любого существующего переводчика из верхнего списка настроенных переводчиков
  5. Должно появиться диалоговое окно «Необходим выбор», в котором необходимо выбрать одного или нескольких переводчиков для восстановления. Отметьте все подходящие варианты
  6. Нажмите "Ok", и PyDev будет повторно сканировать, и я предполагаю, перестроить некоторое внутреннее представление ваших пакетов сайта
  7. Нажмите «Применить и закрыть», чтобы закрыть все диалоги

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

0 голосов
/ 28 октября 2017

Я исправил эту проблему, перейдя в свойства проекта -> PyDev Django и установив модуль настроек Django. enter image description here

0 голосов
/ 10 мая 2016
  1. Откройте окно затмения -> настройки и перейдите в PyDev -> Интерпретатор.
  2. нажмите «Проверить, синхронизированы ли переводчики со средой»

Это сделало это для меня. Перезапуск Eclipse не требуется.

0 голосов
/ 07 сентября 2013

@ Aufwind ваш ответ выше помог, но не решил для меня.

  • Найдите путь к папке ../site-packages/ ....
  • Откройте настройки затмения и перейдите в PyDev -> Интерпретатор - Python.
  • В левой части нижнего поля нажмите «Новая папка». ---> здесь я отступил от ваших инструкций. Я добавил яйцо для модуля, который не был распознан. Добавление папки site-packages не помогло.
  • Хит открыть.
  • Нажмите Применить.
  • Хит Ок.

И тогда мне было хорошо идти. =)

0 голосов
/ 12 февраля 2013

Предположим, ваш вечный модуль находится в /.

Запустите Eclipse и перейдите к опции проекта.Выберите «PyDev-PYTHONPATH» и справа вы увидите окно с вкладками.Выберите там Внешние библиотеки.Нажмите «Добавить исходную папку» и выберите свою библиотеку по указанному выше пути.

...