Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Flask和gunicorn,多个模块:循环导入-并非所有路径均可访问_Python_Heroku_Gunicorn - Fatal编程技术网

Python Flask和gunicorn,多个模块:循环导入-并非所有路径均可访问

Python Flask和gunicorn,多个模块:循环导入-并非所有路径均可访问,python,heroku,gunicorn,Python,Heroku,Gunicorn,我的问题类似于和,但我似乎无法使用他们的解决方案来解决它 我的烧瓶应用程序具有以下结构: appname/ run.py Procfile venv/ ... appname/ app.py views.py run.py: from appname import app app.run(debug=True) app.py: from flask import Flask app = Flask(__name__) @ap

我的问题类似于和,但我似乎无法使用他们的解决方案来解决它

我的烧瓶应用程序具有以下结构:

appname/
   run.py
   Procfile
   venv/
       ...
   appname/
       app.py
       views.py
run.py:

from appname import app
app.run(debug=True)
app.py:

from flask import Flask
app = Flask(__name__)

@app.route('/')
def home():
    return "here"
程序文件:

web: gunicorn --pythonpath appname app:app
views.py:

from appname import app
from flask import render_template

@app.route('/there')
def there():
    return "there"
以前,我在运行
foreman start
时遇到了ERORR,但当我从
app.py
中删除
import appname.views
后,这些ERORR就消失了

现在,
工头启动
运行应用程序,路线
/
可访问,但
/那里
不可访问。为什么会这样?

我能够通过以下方式“绕过”这个问题:

  • 除了在
    run.py
  • 因此,仅在
    app.py

  • 虽然我不确定哪种Python风格更好,但我还是更愿意将路由保留在模块中。

    万岁!我已经能够让它与我真正想要的代码一起工作

    应用程序结构(未更改):

    run.py(未更改):

    app.py:

    from flask import Flask
    app = Flask(__name__)
    
    import appname.views
    import appname.anothermodule
    
    web: gunicorn appname:app
    
    Procfile:

    from flask import Flask
    app = Flask(__name__)
    
    import appname.views
    import appname.anothermodule
    
    web: gunicorn appname:app
    
    views.py(未更改):


    为什么
    /
    -路由不在
    视图.py
    中?@msvalkon在我试图解决此问题时,它是独立的,因此我可以证明app.py中的路由是可访问的,而其他模块中的路由不是。@neurosnap我不确定它是否可访问。在开发时,我使用run.py启动应用程序,使用
    python run.py
    ,但是……没错,因为我从来没有真正指向run.py,这就是为什么我很好奇,多亏了你的解决方案,我最终解决了我的问题!谢谢!
    from appname import app
    
    @app.route('/')
    def home():
        return "Hello, awesomeness!"