проблемы с импортом модулей Python из других пакетов (pycharm дает неразрешенную ссылку)

Я не знаю, связан ли pycharm с проблемой, или это я нуб.

Вот снимок экрана с моей папкой и тремя файлами кода:

screenshot

Я использую Pycharm в Windows, и «my_working_directory» — это мой рабочий каталог. На скриншоте видно, что в mod1.py «из package2.mod2» подчеркнуто, что означает «неразрешенная ссылка».

Когда я пытаюсь запустить mod1.py, я получаю:

C:\Python27\python.exe C:/Users/Robert/PycharmProjects/play/my_working_directory/package1/mod1.py
Traceback (most recent call last):
  File "C:/Users/Robert/PycharmProjects/play/my_working_directory/package1/mod1.py", line 1, in 
    from package2.mod2 import SomeClass
ImportError: No module named package2.mod2

Когда я запускаю main.py, я получаю:

C:\Python27\python.exe C:/Users/Robert/PycharmProjects/play/my_working_directory/main.py
hi

Я не понимаю, почему один работает, а другой нет.

Основная проблема заключается в том, что pycharm не дает автозавершения, а из mod1 не может обнаружить package2. Это огромная проблема, потому что package1 — это мой пакет представления, package2 — мои модели, утилиты или пакет lib (в большом контроллере представления модели). (пример https://github.com/coto/gae-boilerplate/blob/master/web/handlers.pypycharm не обнаруживает ни одного из операторов from lib.? ссылка).

Кто-нибудь знает, что происходит? Является ли это лучшим способом импорта пакетов? Должен ли я рассчитывать на возможность автозаполнения?

Должен ли "my_working_directory" быть преобразован в пакет, создав другой init .py файл?

6
задан robert king 29 May 2012 в 11:25
поделиться