Python __init__.py和导入

时间:2019-05-16 22:24:11

标签: python python-3.x

即使我从该资源文件导入所有模块,也无法在单独的.py文件中使用任何方法。我有以下结构:

mandarin/
│
├── mandarin/
│   ├── __init__.py
│   ├── mandarin.py
│   └── helpers.py
│
├── .gitignore
├── LICENSE
├── README.md
├── requirements.txt
└── setup.py

初始化 .py内容:

    from .helpers import *
    from .structures import *
    from .exceptions import *   

structures.py内容:

   PinyinToneMark = {
    1: ['\u0101', '\u0113', '\u012b', '\u014d', '\u016b'],
    2: ['\u00e1', '\u00e9', '\u00ed', '\u00f3', '\u00fa'],
    3: ['\u01ce', '\u011b', '\u01d0', '\u01d2', '\u01d4'],
    4: ['\u00e0', '\u00e8', '\u00ec', '\u00f2', '\u00f9']
          # a       # e       # i       # o        # u
}

PinyinToEnglish = {
    'a': ['\u0101', '\u00e1', '\u01ce', '\u00e0'],
    'e': ['\u0113', '\u00e9', '\u011b', '\u00e8'],
    'i': ['\u012b', '\u00ed', '\u01d0', '\u00ec'],
    'o': ['\u014d', '\u00f3', '\u01d2', '\u00f2'],
    'u': ['\u016b', '\u00fa', '\u01d4', '\u00f9']
}  

exceptions.py内容:

class InvalidCharacters(Exception):
    """Raised when the user types in invalid characters, excluding '?'"""  

mandarin.py内容:

    import mandarin

    try:
        user_input = input('enter pinyin: ')
        pinyin_string = mandarin.encode_pinyin(user_input)
        print(f'user typed in {pinyin_string}')
    except mandarin.InvalidCharacters:
        print('error')

当尝试使用'helpers.py'中的方法时,出现以下错误:

Traceback (most recent call last):
  File "/Users/aclinton/PycharmProjects/mandarin/mandarin/mandarin.py", 
line 5, in <module>
    pinyin_string = mandarin.encode_pinyin(user_input)
AttributeError: module 'mandarin' has no attribute 'encode_pinyin'

1 个答案:

答案 0 :(得分:-1)

尝试:

from mandarin import mandarin

这可能有用。