[Структура]
Root
|_ app
|_util
|_ log.py
|_config.py
|_ run.py
[run.py]
#import sys
#import os
#sys.path.insert(0, os.path.abspath('.'))
from app.config import Config
class App(object):
def __init__(self):
pass
def run(self):
Config.set_code(200)
Config.print_code()
if __name__ == '__main__':
app = App()
app.run()
[config.py]
from app.util.log import Log
class Config(object):
code = None
def __init__(self):
pass
@classmethod
def set_code(cls, code):
cls.code = code
@classmethod
def get_code(cls):
return cls.code
@classmethod
def print_code(cls):
Log.msg()
[log.py]
from app.config import Config
class Log(object):
def __init__(self):
pass
@classmethod
def msg(cls):
code = Config.get_code()
print('Code is: %r' % code)
[Токовый выход]
File "C:\works\workout\tmp\app\util\log.py", line 1, in <module>
from app.config import Config
ImportError: cannot import name 'Config' from 'app.config' (C:\works\workout\tmp\app\config.py)
[Ожидаемый результат]
Code is: 200
Еще одно сомнение: есть ли способ исправить корневой импорт как «приложение», а затем получить доступ к файлам этой папки / подпапки (любой глубины),
[приложение / sub1 / a.py]
from app.util.xx import XX
**from app.a import A**
from app.aaa.bb import BB
A.some_fn()
[приложение / a.py]
from app.util.xx import XX
**from app.sub1.a import A**
from app.aaa.bb import BB
A.some_fn()
[приложение / sub1 / sub2 / a.py]
**from app.sub1.a import A**
**from app.sub1.sub2.b import B**
from app.aaa.bb import BB
A.some_fn()
Если есть предложения или идеи, то, пожалуйста!
Заранее спасибо,