2013-08-20 3 views
8

Я пытаюсь импортировать старый проект в pycharm для отладки. структура каталогов выглядит следующим образом:Импорт каталога в pycharm

папку верхнего уровня ---> Папка один

папку верхнего уровня ---> папки два

Проблема заключается в том, что программы в субдиректориях использовать:

import top 
from top import module 

PyCharm возвращает ошибку: «ни один из модулей не названный сверху»

Как я могу это исправить?

+1

У вашей верхней папки есть файл '__init __. Py'? Если это не так, то это не модуль. –

ответ

11

Первое, что нужно сделать, чтобы сделать то, что сказали игры, вам нужно убедиться, что каждая папка, представляющая пакет, выполняется путем размещения файла __init__.py, который представляет собой пустой файл python с именем точно __init__.py, который сообщает интерпретатору, что папка представляет собой пакет python.

Вторая вещь, которую нужно искать, - это то, что pycharm любит жаловаться на импортированный код, если PyCharm не знает об этом каталоге. Перейдите в конфигурацию интерпретатора проекта и перейдите к Пути и добавьте ссылки на пути, которые отсутствуют в проекте или непосредственно под интерпретатором.

Еще одна вещь, которую нужно добавить, - установить исходный корень кода проекта, щелкнув правой кнопкой мыши папку, представляющую ваш корень, и нажав «Отметить каталог как ...»> «Корень источника».

+0

Сохранено много красных маркеров в моем проекте! –

+0

Есть ли способ рассказать PyCharm о поиске во ВСЕХ модулей/подпапок в проекте? У нас очень высокая структура каталогов, и очень сложно вручную установить все папки как «Источники». – jimtut

+0

Вам не нужно устанавливать все каталоги в качестве источников, которые вам нужно установить для root. Если у вас несколько корней, вы можете неправильно организовать свой проект. – BrokenRobot

1

Я столкнулся с той же проблемой, но это не вызвано отсутствием init .py file. Причина в том, что в проекте есть два одинаковых модуля имени, поэтому PyCharm не знает, как импортировать. Странно, что PyCharm сообщает об этой ошибке только время работы.

My Project Files:

source root1 
    |-- moduleA 
     |-- __init__.py 
     |-- A.py 

source root2 
    |-- moduleA 
     |-- __init__.py 
     |-- B.py 

На самом деле, источник root1 мой код, и источник root2 мой тестовый код.

поэтому решение заключается в изменении имени тестового модуля.

source root1 
    |-- moduleA 
     |-- __init__.py 
     |-- A.py 

source root2 
    |-- testmoduleA 
     |-- __init__.py 
     |-- B.py 
Смежные вопросы