2015-03-23 5 views
0

Я новичок в PythonImportError: Нет модуль с именем *****

я следующую структуру каталогов

python_programs/ 
       addition.py 
       info/_init_.py 
        msg1.py 
        msg2.py 
        msg3.py 

В addition.py у меня есть следующий код: -

import Info 
Info.msg1() 
Info.msg2() 
Info.msg3() 

В init .py У меня есть следующий код

from msg1 import msg1 
from msg2 import msg2 
from msg3 import msg3 

В msg1.py у меня есть следующий код: -

def msg1(): 
    print "This is msg1" 

В msg2.py у меня есть следующий код: -

def msg2(): 
    print "This is msg2" 

В msg3.py у меня есть следующий код: -

def msg3(): 
    print "This is msg3" 

, но когда я попытался запустить файл addition.py

он дает мне ошибку: -

Traceback (most recent call last): 
    File "addition.py", line 2, in <module> 
    import Info 
ImportError: No module named Info 
+5

'__init __. Py' требует ** двух ** подчеркивания до и после' init'. У вас есть только одна с обеих сторон. –

+3

Имена модулей Python также чувствительны к регистру; ваш пакет называется 'info', все строчные буквы, но ваш код импортирует' Info', с капиталом 'I'. –

+0

Я добавил другие символы подчеркивания, но результат тот же –

ответ

3

Вы сделали две ошибки:

  • Чтобы создать пакет, файл должен быть назван __init__.py (двойные подчеркивания с каждой стороны), не _init_.py.

  • Python чувствителен к регистру. Вы назвали свой пакет info (нижний регистр), но попробуйте ввести Info (uppercase I); они не совпадают. Переименуйте одно или другое, чтобы правильно совместить регистр.

Смежные вопросы