Подтвердить что ты не робот

Добавление модулей python в pydev в eclipse приводит к ошибке импорта?

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

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

python --version

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

import unidecode

и

from unidecode import unidecode

работайте отлично!

Я установил PyDev в Eclipse и пошел на настройку интерпретатора python (Auto Config). Я выбрал все предлагаемые пакеты и нажал Apply и Ok.

Но 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()

Когда я удаляю первую строку в script

#!/usr/bin/env python

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

Кто-нибудь знает, где проблема?

4b9b3361

Ответ 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 → Interpreter - Python.
  • В левой части нижнего окна нажмите "Новая папка".
  • Добавьте переход к ../site-packages/ вашей соответствующей версии python.
  • Нажмите "Открыть".
  • Нажмите Применить.
  • Нажмите "ОК".

И тебе должно быть хорошо идти. =)

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

Ответ 2

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

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

  • перезапуск eclipse
  • удалить/добавить интерпретатор python и все пакеты сайта
  • раздражение головы царапин

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

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

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

Ответ 4

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

Ответ 5

В моем случае я не получал эту ошибку перед компиляцией, но когда компилирую, я получил сообщение об ошибке ImportError: Нет модуля с именем myant.core. Я попытался добавить файлы из PyDev-PYTHONPATH, но снова получил ту же ошибку. Затем я понял, что мне действительно не нужно добавлять путь именно к папке, где находятся мои .py файлы. Infact Мне нужно добавить папку, в которой находится 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

Ответ 6

Попробуйте настройки > pydev > interpreter - python и удалите и повторно добавьте интерпретатор python (убедитесь, что знаете путь к нему перед его удалением), когда вы повторно добавляете его, отметьте все поля.

Ответ 7

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

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

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

Ответ 8

  • Откройте окно затмения → настройки и перейдите к PyDev → Interpreter.
  • нажмите "Проверить, синхронизированы ли интерпретаторы с окружающей средой".

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

Ответ 9

Я исправил эту проблему, перейдя к свойствам проекта → PyDev Django и установка модуля настроек Django. введите описание изображения здесь

Ответ 10

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

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