【问题标题】:ImportError: No module named... in __init__.py fileImportError: No module named... in __init__.py 文件
【发布时间】:2015-06-16 10:31:48
【问题描述】:

我的项目结构是:

/home/giri/couponmonk_project
    __init__.py
    views.py

__init__.py

from flask import Flask

app = Flask(__name__)
app.debug = True
import couponmonk_project.views

views.py

from couponmonk_project import app

@app.route('/', methods = ['GET'])
def index():
    return 'Flask is running!'

当我跑步时:

gunicorn __init__:app -b localhost:8000

来自文件夹/home/giri/couponmonk_project

我得到错误:

ImportError: No module named couponmonk_project.views

我尝试添加:

import sys
sys.path.append("/home/giri/couponmonk_project")

到我的__init__.py 文件,但仍然得到同样的错误。

即使这行得通,附加到sys.path 是正确的做法吗?

我已阅读到附加到 sys 和 PYTHONPATH 可能不是解决问题的最佳方法。

【问题讨论】:

  • @l4mpi 抱歉打错了。
  • 好像你有一个循环依赖。

标签: python flask python-import


【解决方案1】:

正如在上面的 cmets 中所说,你有一个循环依赖。为避免这种情况,您应该将当前的 couponmonk_project 作为模块,它将由另一个 python 脚本运行。根据Flask documentation,您的项目应如下所示:

/home/giri/couponmonk_project
    __init__.py
    /home/giri/couponmonk_project/couponmonk_project
    __init__.py
    views.py

其中内部文件夹couponmonk_project 是您当前的项目,外部文件夹couponmonk_project 是新项目。因此,文件/home/giri/couponmonk_project/__init__.py 应该是这样的:

from couponmonk_project import app
import couponmonk_project.views

app.run()

你的文件/home/giri/couponmonk_project/coupon_monk/project__init__.py 是:

from flask import Flask

app = Flask(__name__)
app.debug = True

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-10
    • 1970-01-01
    • 2012-08-12
    • 2011-10-19
    • 2018-01-19
    相关资源
    最近更新 更多