Python 如何将我的flask网站部署到heroku而不出错?

Python 如何将我的flask网站部署到heroku而不出错?,python,flask,heroku,Python,Flask,Heroku,我使用flask后端创建了一个网站,在本地一切正常,但当我尝试在heroku上部署它时,我发现了这些错误>> 这是我的文件 web: gunicorn wsgi:app 这是我的wsgi文件 from . import create_app app = create_app() 这是我的创建应用程序代码>> def create_app(): app = Flask(__name__) if not os.getenv("DATABASE_URL"):

我使用flask后端创建了一个网站,在本地一切正常,但当我尝试在heroku上部署它时,我发现了这些错误>> 这是我的文件

web: gunicorn wsgi:app 
这是我的wsgi文件

from . import create_app
app = create_app()
这是我的创建应用程序代码>>

def create_app():

    app = Flask(__name__)

    if not os.getenv("DATABASE_URL"):
        raise RuntimeError("DATABASE_URL is not set")


    app.config['SQLALCHEMY_DATABASE_URI'] = os.getenv("DATABASE_URL")
    app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False

    db = SQLAlchemy()
    db.init_app(app)

    app.config['SECRET_KEY'] = os.getenv("SECRET_KEY")

    login_manager = LoginManager()
    login_manager.init_app(app)


    @login_manager.user_loader
    def load_user(user_id):
        return User.query.get(int(user_id))

    return app
这是我从heroku日志中得到的

2020-03-25T07:37:09.102934+00:00 heroku[web.1]: State changed from starting to crashed
2020-03-25T07:37:08.996125+00:00 app[web.1]: Traceback (most recent call last):
2020-03-25T07:37:08.996155+00:00 app[web.1]:   File "/app/.heroku/python/bin/gunicorn", line 7, in <module>
2020-03-25T07:37:08.996318+00:00 app[web.1]:     from gunicorn.app.wsgiapp import run
2020-03-25T07:37:08.996337+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py", line 9, in <module>
2020-03-25T07:37:08.996465+00:00 app[web.1]:     from gunicorn.app.base import Application
2020-03-25T07:37:08.996496+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/gunicorn/app/base.py", line 11, in <module>
2020-03-25T07:37:08.996623+00:00 app[web.1]:     from gunicorn import util
2020-03-25T07:37:08.996654+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/gunicorn/util.py", line 6, in <module>
2020-03-25T07:37:08.996775+00:00 app[web.1]:     import ctypes.util
2020-03-25T07:37:08.996798+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.7/ctypes/util.py", line 3, in <module>
2020-03-25T07:37:08.996912+00:00 app[web.1]:     import subprocess
2020-03-25T07:37:08.996934+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.7/subprocess.py", line 153, in <module>
2020-03-25T07:37:08.997239+00:00 app[web.1]:     import select
2020-03-25T07:37:08.997265+00:00 app[web.1]:   File "/app/select.py", line 3, in <module>
2020-03-25T07:37:08.997509+00:00 app[web.1]:     from flask import Flask,jsonify
2020-03-25T07:37:08.997541+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/flask/__init__.py", line 16, in <module>
2020-03-25T07:37:08.997670+00:00 app[web.1]:     from werkzeug.exceptions import abort
2020-03-25T07:37:08.997694+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/werkzeug/__init__.py", line 218, in <module>
2020-03-25T07:37:08.997974+00:00 app[web.1]:     from .serving import run_simple
2020-03-25T07:37:08.997999+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.7/site-packages/werkzeug/serving.py", line 41, in <module>
2020-03-25T07:37:08.998139+00:00 app[web.1]:     import socket
2020-03-25T07:37:08.998163+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.7/socket.py", line 52, in <module>
2020-03-25T07:37:08.998310+00:00 app[web.1]:     import os, sys, io, selectors
2020-03-25T07:37:08.998334+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.7/selectors.py", line 290, in <module>
2020-03-25T07:37:08.998523+00:00 app[web.1]:     class SelectSelector(_BaseSelectorImpl):
2020-03-25T07:37:08.998547+00:00 app[web.1]:   File "/app/.heroku/python/lib/python3.7/selectors.py", line 317, in SelectSelector
2020-03-25T07:37:08.998734+00:00 app[web.1]:     _select = select.select
2020-03-25T07:37:08.998772+00:00 app[web.1]: AttributeError: module 'select' has no attribute 'select'
2020-03-25T07:37:09.084647+00:00 heroku[web.1]: Process exited with status 1



2020-03-25T07:39:11.077962+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=bookreviews101.herokuapp.com request_id=a08f3517-e1e7-439a-bd77-f676d217cc8b fwd="197.165.201.207" dyno= connect= service= status=503 bytes= protocol=https
2020-03-25T07:39:11.531655+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=bookreviews101.herokuapp.com request_id=27ee6d2f-2e85-4cb3-87dd-9856f84285e6 fwd="197.165.201.207" dyno= connect= service= status=503 bytes= protocol=https
2020-03-25T07:37:09.102934+00:00 heroku[web.1]:状态从开始更改为崩溃
2020-03-25T07:37:08.996125+00:00应用程序[web.1]:回溯(最近一次通话):
2020-03-25T07:37:08.996155+00:00应用程序[web.1]:文件“/app/.heroku/python/bin/gunicorn”,第7行,在
2020-03-25T07:37:08.996318+00:00应用程序[web.1]:从gunicorn.app.wsgiapp导入运行
2020-03-25T07:37:08.996337+00:00应用程序[web.1]:文件“/app/.heroku/python/lib/python3.7/site packages/gunicorn/app/wsgiapp.py”,第9行
2020-03-25T07:37:08.996465+00:00应用程序[web.1]:来自gunicorn.app.base导入应用程序
2020-03-25T07:37:08.996496+00:00应用程序[web.1]:文件“/app/.heroku/python/lib/python3.7/site packages/gunicorn/app/base.py”,第11行
2020-03-25T07:37:08.996623+00:00应用程序[web.1]:来自gunicorn import util
2020-03-25T07:37:08.996654+00:00应用程序[web.1]:文件“/app/.heroku/python/lib/python3.7/site packages/gunicorn/util.py”,第6行
2020-03-25T07:37:08.996775+00:00应用程序[web.1]:导入ctypes.util
2020-03-25T07:37:08.996798+00:00应用程序[web.1]:文件“/app/.heroku/python/lib/python3.7/ctypes/util.py”,第3行,在
2020-03-25T07:37:08.996912+00:00应用程序[web.1]:导入子流程
2020-03-25T07:37:08.996934+00:00应用程序[web.1]:文件“/app/.heroku/python/lib/python3.7/subprocess.py”,第153行,在
2020-03-25T07:37:08.997239+00:00应用程序[网站1]:导入选择
2020-03-25T07:37:08.997265+00:00应用程序[web.1]:文件“/app/select.py”,第3行,在
2020-03-25T07:37:08.997509+00:00应用程序[web.1]:来自烧瓶进口烧瓶,jsonify
2020-03-25T07:37:08.997541+00:00 app[web.1]:文件“/app/.heroku/python/lib/python3.7/site packages/flask/_u init__;.py”,第16行
2020-03-25T07:37:08.997670+00:00应用程序[web.1]:来自werkzeug.exceptions导入中止
2020-03-25T07:37:08.997694+00:00 app[web.1]:文件“/app/.heroku/python/lib/python3.7/site packages/werkzeug/_uuinit_uuuuuu.py”,第218行,in
2020-03-25T07:37:08.997974+00:00应用程序[web.1]:从.服务导入运行
2020-03-25T07:37:08.997999+00:00应用程序[web.1]:文件“/app/.heroku/python/lib/python3.7/site packages/werkzeug/service.py”,第41行
2020-03-25T07:37:08.998139+00:00应用程序[web.1]:导入套接字
2020-03-25T07:37:08.998163+00:00应用程序[web.1]:文件“/app/.heroku/python/lib/python3.7/socket.py”,第52行,在
2020-03-25T07:37:08.998310+00:00应用程序[web.1]:导入操作系统、系统、io、选择器
2020-03-25T07:37:08.998334+00:00应用程序[web.1]:文件“/app/.heroku/python/lib/python3.7/selectors.py”,第290行,在
2020-03-25T07:37:08.998523+00:00应用程序[web.1]:类SelectSelector(_BaseSelectorImpl):
2020-03-25T07:37:08.998547+00:00应用程序[web.1]:文件“/app/.heroku/python/lib/python3.7/selectors.py”,第317行,在SelectSelector中
2020-03-25T07:37:08.998734+00:00应用程序[web.1]:_select=select.select
2020-03-25T07:37:08.998772+00:00应用程序[web.1]:属性错误:模块“选择”没有属性“选择”
2020-03-25T07:37:09.084647+00:00 heroku[web.1]:进程已退出,状态为1
2020-03-25T07:39:11.077962+00:00 heroku[路由器]:at=错误代码=H10 desc=“应用程序崩溃”方法=GET path=“/”主机=bookerviews101.herokuapp.com请求\u id=a08f3517-e1e7-439a-bd77-f676d217cc8b fwd=“197.165.201.207”dyno=connect=service=status=503字节=protocol=https
2020-03-25T07:39:11.531655+00:00 heroku[路由器]:at=错误代码=H10 desc=“应用程序崩溃”方法=获取路径=“/favicon.ico”主机=bookerviews101.herokuapp.com请求\u id=27ee6d2f-2e85-4cb3-87dd-9856f84285e6 fwd=“197.165.201.207”dyno=connect=service=status=503字节=https
我想知道这个错误的原因是什么,以及如何修复它

这是我的wsgi文件

from . import create_app
app = create_app()
这是我的创建应用程序代码

def create_app():
...
应用程序代码所在的文件名是什么。您的
来自。导入创建应用程序
看起来错误。它可能没有导入该方法

通常,您应该在
app.py
中编写类似的内容:

app = Flask(__name__)
@app.route("/")
def exampleroot():
     return {'message': 'just an example'}

if __name__ == "__main__":
    app.run(host='0.0.0.0', port=os.environ.get('PORT', 80))
您可以使用
python3 app.py
执行此操作

您可以通过gunicorn运行
app.py
,通过
gunicorn应用程序:app
。(
\uuuu name\uuuu==“\uuuuu main\uuuuu”
将返回
False

它已导入并正在运行,因为我在应用程序文件中像这样导入了>>并且它正在工作>>在本地一切正常运行?我有很多路线。。而且每件事都很好如果你锁定了错误,你会发现没有到我的文件的路由所有路由都在/lib>>>这不是同一个错误??您会发现/lib和selectors.py缺少该属性!!!或者告诉我如何解决我的问题天才