从flask项目的父目录导入.py文件

时间:2018-06-27 12:35:51

标签: python flask flask-sqlalchemy

我从我的烧瓶项目的开始就遇到了一个问题。

我的项目就像:

project/--
        |--run.py
        |--fbapp/-------
        |--config.py  |--views.py
                      |--_init_.py
                      |--template/---

ps:run.py,文件夹fbapp /和config.py在项目/文件夹中

当我执行views.py时,出现错误:

ImportError: No module named 'config'

当我在fbapp /目录中移动config.py文件时,它可以解决,但是 当我将使用SQLAlchemy库时,它将导致一些问题。 我需要在同一目录中有config.py和run.py。

views.py:

from flask import Flask 
app = Flask(__name__)

# Config options - Make sure you created a 'config.py' file.
app.config.from_object('config')
# To get one variable, tape app.config['MY_VARIABLE']
@app.route('/')

def index():
    return "Hello world !"
if __name__ == "__main__":
    app.run()

config.py:

SECRET_KEY = 'some_secret_key'
FB_APP_ID = 000011112222333444

__init__。py:

from flask import Flask
from .views import app

先谢谢您

整个项目在这里:https://github.com/oc-courses/concevez_un_site_avec_flask/tree/P1C2

1 个答案:

答案 0 :(得分:0)

您必须在包中添加__init__.py(空)文件,否则找不到该模块:

project/--
     |--__init__.py #this tells python interpreter project is a python module
     |--fbapp/------
     |--run.py     |--template/---
     |--config.py  |--views.py
     |--__init__.py #this tells python interpreter fbapp is a python module

如果您不将文件夹“声明”为python模块,则无法从其中导入

因此在views.py中,您必须做: from fbapp.config import <what you need>

PS:我的建议是在python中通过IDE接口创建“模块”,因此IDE本身会为此而烦恼。