У меня есть приложение-фляга, клонированное из git, после установки всех его требований и запуска приложения с помощью
$ python start.py
Я получаю следующую ошибку
Traceback (most recent call last):
File "start.py", line 6, in <module>
app = create_app("local")
File "C:\Jahangeer\qurbcode\api\app\__init__.py", line 66, in create_app
from app.api_1_0 import apibp as api_1_0, api_spec as api_1_0_spec
File "C:\Jahangeer\qurbcode\api\app\api_1_0\__init__.py", line 78, in <module>
ModuleImport.importModulesFromPath(os.path.dirname(os.path.realpath(__file__)), __name__)
File "C:\Jahangeer\qurbcode\api\app\helpers\module_import.py", line 16, in importModulesFromPath
importlib.import_module("." + module, package)
File "C:\Python27\lib\importlib\__init__.py", line 37, in import_module
__import__(name)
ImportError: Import by filename is not supported.
Start.py имеет следующий код
import os
from app import create_app
app = create_app("local")
if __name__ == '__main__':
app.run(host= '0.0.0.0', threaded=True)
, а внутри моего init .py в строке 66, о котором упоминается в приведенной выше ошибке, следующий
# Setup api/1.0 blueprint
from .api_1_0 import apibp as api_1_0, api_spec as api_1_0_spec
from .admin import admin_bp as admin
app.register_blueprint(api_1_0, url_prefix='/api/1.0')
Вот структура приложения
api
->admin_app
->app
->admin
->api_1_0
->__init__.py
->start.py
->manage.py
Мой api \ app \ helpers \ module_import.py имеет следующий код:
import glob
import importlib
class ModuleImport:
@staticmethod
def importModulesFromPath(dir_path, package, import_init = False):
files = glob.glob(dir_path + "/*.py")
for file in files:
module = file.replace(dir_path, "").replace("/", "").replace(".py", "")
if module == "__init__" and not import_init:
continue
importlib.import_module("." + module, package)
и мой api \ app \ api_1_0__init __. Py имеютследующий код: в строке 78
ModuleImport.importModulesFromPath(os.path.dirname(os.path.realpath(__file__)), __name__)