简体   繁体   English

未找到模块错误没有名为“app”的模块 Heroku:

[英]Module not found error no module named 'app' Heroku :

I deployed my Flask App on Heroku numerous time.我在 Heroku 上多次部署了我的 Flask 应用程序。 Even after successful builds my app is not running.即使成功构建后,我的应用程序也没有运行。 It keep on saying some Application Error whenever I open my link.每当我打开我的链接时,它都会一直说一些应用程序错误。

  1. main.py主文件

    from flask import Flask, render_template, request,session,redirect from flask_sqlalchemy import SQLAlchemy from flask_mail import Mail import json from werkzeug.utils import secure_filename from datetime import datetime import os import math with open('config.json', 'r') as c: params = json.load(c)["params"] local_server = True app = Flask(__name__) app.secret_key = 'key' app.config['UPLOAD_FOLDER']=params['upload_location'] #app.secret_key = 'super-secret-key' app.config.update( #for mail updates MAIL_SERVER = 'smtp.gmail.com', MAIL_PORT = '465', MAIL_USE_SSL = True, MAIL_USERNAME = params['gmail-user'], MAIL_PASSWORD = params['gmail-password'] ) mail = Mail(app) if (local_server): app.config['SQLALCHEMY_DATABASE_URI'] = params['local_uri'] else: app.config['SQLALCHEMY_DATABASE_URI'] = params['prod_uri'] db = SQLAlchemy(app) class Contacts(db.Model): sno = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), nullable=False) phone_num = db.Column(db.String(12), nullable=False) msg = db.Column(db.String(120), nullable=False) date = db.Column(db.String(12), nullable=True) email = db.Column(db.String(20), nullable=False) class Posts(db.Model): sno = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(80), nullable=False) slug = db.Column(db.String(12), nullable=False) content = db.Column(db.String(120), nullable=False) date = db.Column(db.String(12), nullable=True) tagline = db.Column(db.String(20), nullable = False) img_file = db.Column(db.String(12), nullable = True) @app.route("/") def home(): posts = Posts.query.filter_by().all() last = math.ceil(len(posts)/int(params['no_of_posts'])) page = request.args.get('page') if(not str(page).isnumeric()): page = 1 page= int(page) posts = posts[(page-1)*int(params['no_of_posts']):(page-1)*int(params['no_of_posts']) + int(params['no_of_posts'])] #Pagination Logic #when user is on first page if(page==1): prev="#" next = "/?page="+str(page+1) #when user is on last page elif(page==last): prev = "/?page=" + str(page-1) next = "#" else: prev = "/?page=" + str(page - 1) next = "/?page=" + str(page + 1) #posts = Posts.query.filter_by().all()[0:params['no_of_posts']] return render_template('index.html', params = params, posts =posts, prev = prev, next = next ) @app.route("/post/<string:post_slug>",methods = ['GET']) def post_route(post_slug): post = Posts.query.filter_by(slug = post_slug).first() return render_template('post.html',params=params, post=post) @app.route("/about") def about(): return render_template('about.html', params=params) @app.route("/logout") def logout(): session.pop('user') return redirect('/dashboard') @app.route("/contact", methods=['GET', 'POST']) def contact(): if (request.method == 'POST'): name = request.form.get('name') email = request.form.get('email') phone = request.form.get('phone') message = request.form.get('message') entry = Contacts(name=name, phone_num=phone, msg=message, date=datetime.now(), email=email) db.session.add(entry) db.session.commit() mail.send_message('New message from blog', sender = email, recipients = [params['gmail-user']], body = message + "\n" + phone ) return render_template('contact.html', params=params) @app.route("/dashboard", methods = ['GET','POST']) def dashboard(): if 'user' in session and session['user'] == params['admin_user']: posts = Posts.query.all() return render_template('dashboard.html',posts = posts) #check if the admin is already logged in if request.method=='POST': username = request.form.get('uname') userpass = request.form.get('pass') if(username == params['admin_user'] and userpass == params['admin_password']): #set the session variable session['user'] = username posts = Posts.query.all() return render_template('dashboard.html',params = params,posts= posts) #REDIRECT TO ADMIN PANEL else: return render_template('login.html', params=params) @app.route("/delete/<string:sno>", methods = ['GET','POST']) def delete(sno): if 'user' in session and session['user'] == params['admin_user']: post = Posts.query.filter_by(sno=sno).first() db.session.delete(post) db.session.commit() return redirect('/dashboard') @app.route("/uploader", methods=['GET', 'POST']) def uploader(): if ("user" in session and session['user'] == params['admin_user']): if(request.method == 'POST'): f = request.files['file1'] f.save(os.path.join(app.config['UPLOAD_FOLDER'],secure_filename(f.filename))) return "Uploaded successfully" @app.route("/edit/<string:sno>", methods=['GET', 'POST']) def edit(sno): if ("user" in session and session['user'] == params['admin_user']): if request.method == "POST": box_title = request.form.get('title') tline = request.form.get('tagline') slug = request.form.get('slug') content = request.form.get('content') img_file = request.form.get('img_file') date = datetime.now() if sno == '0': post = Posts(title=box_title, slug=slug, content=content, tagline=tline, img_file=img_file, date=date) db.session.add(post) db.session.commit() else: post=Posts.query.filter_by(sno=sno).first() post.title = box_title post.slug = slug post.content = content post.tagline = tline post.img_file = img_file post.date = date db.session.commit() return redirect('/edit/'+sno) post = Posts.query.filter_by(sno=sno).first() return render_template('edit.html', params = params,post = post,sno=sno ) app.run(debug=True)
  2. Build Logs构建日志

    021-04-22T10:06:26.320935+00:00 app[web.1]: ModuleNotFoundError: No module named 'app' 2021-04-22T10:06:26.320999+00:00 app[web.1]: [2021-04-22 10:06:26 +0000] [8] [INFO] Worker exiting (pid: 8) 2021-04-22T10:06:26.344420+00:00 app[web.1]: Traceback (most recent call last): 2021-04-22T10:06:26.344423+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/gunicorn/arbiter.py", line 202, in run 2021-04-22T10:06:26.344617+00:00 app[web.1]: self.manage_workers() 2021-04-22T10:06:26.344620+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/gunicorn/arbiter.py", line 551, in manage_workers 2021-04-22T10:06:26.344765+00:00 app[web.1]: self.spawn_workers() 2021-04-22T10:06:26.344768+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/gunicorn/arbiter.py", line 623, in spawn_workers 2021-04-22T10:06:26.344907+00:00 app[web.1]: time.sleep(0.1 * random.random()) 2021-04-22T10:06:26.344910+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/gunicorn/arbiter.py", line 242, in handle_chld 2021-04-22T10:06:26.344999+00:00 app[web.1]: self.reap_workers() 2021-04-22T10:06:26.344999+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/gunicorn/arbiter.py", line 525, in reap_workers 2021-04-22T10:06:26.345124+00:00 app[web.1]: raise HaltServer(reason, self.WORKER_BOOT_ERROR) 2021-04-22T10:06:26.345165+00:00 app[web.1]: gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3> 2021-04-22T10:06:26.345173+00:00 app[web.1]: 2021-04-22T10:06:26.345173+00:00 app[web.1]: During handling of the above exception, another exception occurred: 2021-04-22T10:06:26.345173+00:00 app[web.1]: 2021-04-22T10:06:26.345176+00:00 app[web.1]: Traceback (most recent call last): 2021-04-22T10:06:26.345179+00:00 app[web.1]: File "/app/.heroku/python/bin/gunicorn", line 8, in <module> 2021-04-22T10:06:26.345221+00:00 app[web.1]: sys.exit(run()) 2021-04-22T10:06:26.345228+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/gunicorn/app/wsgiapp.py", line 67, in run 2021-04-22T10:06:26.345283+00:00 app[web.1]: WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run() 2021-04-22T10:06:26.345285+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/gunicorn/app/base.py", line 231, in run 2021-04-22T10:06:26.345370+00:00 app[web.1]: super().run() 2021-04-22T10:06:26.345387+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/gunicorn/app/base.py", line 72, in run 2021-04-22T10:06:26.345437+00:00 app[web.1]: Arbiter(self).run() 2021-04-22T10:06:26.345449+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/gunicorn/arbiter.py", line 229, in run 2021-04-22T10:06:26.345528+00:00 app[web.1]: self.halt(reason=inst.reason, exit_status=inst.exit_status) 2021-04-22T10:06:26.345530+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/gunicorn/arbiter.py", line 342, in halt 2021-04-22T10:06:26.345635+00:00 app[web.1]: self.stop() 2021-04-22T10:06:26.345637+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/gunicorn/arbiter.py", line 393, in stop 2021-04-22T10:06:26.345782+00:00 app[web.1]: time.sleep(0.1) 2021-04-22T10:06:26.345786+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/gunicorn/arbiter.py", line 242, in handle_chld 2021-04-22T10:06:26.345855+00:00 app[web.1]: self.reap_workers() 2021-04-22T10:06:26.345858+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/gunicorn/arbiter.py", line 525, in reap_workers 2021-04-22T10:06:26.345976+00:00 app[web.1]: raise HaltServer(reason, self.WORKER_BOOT_ERROR) 2021-04-22T10:06:26.345992+00:00 app[web.1]: gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3> 2021-04-22T10:06:26.401569+00:00 heroku[web.1]: Process exited with status 1 2021-04-22T10:06:26.494132+00:00 heroku[web.1]: State changed from starting to crashed 2021-04-22T10:52:27.200311+00:00 heroku[web.1]: State changed from crashed to starting 2021-04-22T10:52:32.303098+00:00 heroku[web.1]: Starting process with command `gunicorn app:main` 2021-04-22T10:52:35.765500+00:00 app[web.1]: [2021-04-22 10:52:35 +0000] [4] [INFO] Starting gunicorn 20.1.0 2021-04-22T10:52:35.765624+00:00 app[web.1]: [2021-04-22 10:52:35 +0000] [4] [INFO] Listening at: http://0.0.0.0:26129 (4) 2021-04-22T10:52:35.765700+00:00 app[web.1]: [2021-04-22 10:52:35 +0000] [4] [INFO] Using worker: sync 2021-04-22T10:52:35.775598+00:00 app[web.1]: [2021-04-22 10:52:35 +0000] [7] [INFO] Booting worker with pid: 7 2021-04-22T10:52:35.775902+00:00 app[web.1]: [2021-04-22 10:52:35 +0000] [8] [INFO] Booting worker with pid: 8 2021-04-22T10:52:35.779140+00:00 app[web.1]: [2021-04-22 10:52:35 +0000] [7] [ERROR] Exception in worker process 2021-04-22T10:52:35.779141+00:00 app[web.1]: Traceback (most recent call last): 2021-04-22T10:52:35.779149+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/gunicorn/arbiter.py", line 589, in spawn_worker 2021-04-22T10:52:35.779150+00:00 app[web.1]: worker.init_process() 2021-04-22T10:52:35.779150+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/gunicorn/workers/base.py", line 134, in init_process 2021-04-22T10:52:35.779151+00:00 app[web.1]: self.load_wsgi() 2021-04-22T10:52:35.779151+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/gunicorn/workers/base.py", line 146, in load_wsgi 2021-04-22T10:52:35.779151+00:00 app[web.1]: self.wsgi = self.app.wsgi() 2021-04-22T10:52:35.779151+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/gunicorn/app/base.py", line 67, in wsgi 2021-04-22T10:52:35.779152+00:00 app[web.1]: self.callable = self.load() 2021-04-22T10:52:35.779152+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/gunicorn/app/wsgiapp.py", line 58, in load 2021-04-22T10:52:35.779152+00:00 app[web.1]: return self.load_wsgiapp() 2021-04-22T10:52:35.779153+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp 2021-04-22T10:52:35.779153+00:00 app[web.1]: return util.import_app(self.app_uri) 2021-04-22T10:52:35.779153+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/gunicorn/util.py", line 359, in import_app 2021-04-22T10:52:35.779154+00:00 app[web.1]: mod = importlib.import_module(module) 2021-04-22T10:52:35.779154+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/importlib/__init__.py", line 127, in import_module 2021-04-22T10:52:35.779154+00:00 app[web.1]: return _bootstrap._gcd_import(name[level:], package, level) 2021-04-22T10:52:35.779155+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 1030, in _gcd_import 2021-04-22T10:52:35.779155+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 1007, in _find_and_load 2021-04-22T10:52:35.779155+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked 2021-04-22T10:52:35.779156+00:00 app[web.1]: ModuleNotFoundError: No module named 'app' 2021-04-22T10:52:35.779236+00:00 app[web.1]: [2021-04-22 10:52:35 +0000] [7] [INFO] Worker exiting (pid: 7) 2021-04-22T10:52:35.782185+00:00 app[web.1]: [2021-04-22 10:52:35 +0000] [8] [ERROR] Exception in worker process 2021-04-22T10:52:35.782186+00:00 app[web.1]: Traceback (most recent call last): 2021-04-22T10:52:35.782189+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/gunicorn/arbiter.py", line 589, in spawn_worker 2021-04-22T10:52:35.782189+00:00 app[web.1]: worker.init_process() 2021-04-22T10:52:35.782189+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/gunicorn/workers/base.py", line 134, in init_process 2021-04-22T10:52:35.782190+00:00 app[web.1]: self.load_wsgi() 2021-04-22T10:52:35.782190+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/gunicorn/workers/base.py", line 146, in load_wsgi 2021-04-22T10:52:35.782190+00:00 app[web.1]: self.wsgi = self.app.wsgi() 2021-04-22T10:52:35.782191+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/gunicorn/app/base.py", line 67, in wsgi 2021-04-22T10:52:35.782191+00:00 app[web.1]: self.callable = self.load() 2021-04-22T10:52:35.782192+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/gunicorn/app/wsgiapp.py", line 58, in load 2021-04-22T10:52:35.782192+00:00 app[web.1]: return self.load_wsgiapp() 2021-04-22T10:52:35.782192+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp 2021-04-22T10:52:35.782193+00:00 app[web.1]: return util.import_app(self.app_uri) 2021-04-22T10:52:35.782193+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/site-packages/gunicorn/util.py", line 359, in import_app 2021-04-22T10:52:35.782194+00:00 app[web.1]: mod = importlib.import_module(module) 2021-04-22T10:52:35.782194+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.9/importlib/__init__.py", line 127, in import_module 2021-04-22T10:52:35.782194+00:00 app[web.1]: return _bootstrap._gcd_import(name[level:], package, level) 2021-04-22T10:52:35.782195+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 1030, in _gcd_import 2021-04-22T10:52:35.782195+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 1007, in _find_and_load 2021-04-22T10:52:35.782195+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked 2021-04-22T10:52:35.782196+00:00 app[web.1]: ModuleNotFoundError: No module named 'app' 2021-04-22T10:52:35.786188+00:00 app[web.1]: [2021-04-22 10:52:35 +0000] [8] [INFO] Worker exiting (pid: 8) 2021-04-22T10:52:35.831703+00:00 app[web.1]: [2021-04-22 10:52:35 +0000] [4] [WARNING] Worker with pid 8 was terminated due to signal 15 2021-04-22T10:52:35.927217+00:00 app[web.1]: [2021-04-22 10:52:35 +0000] [4] [INFO] Shutting down: Master 2021-04-22T10:52:35.927266+00:00 app[web.1]: [2021-04-22 10:52:35 +0000] [4] [INFO] Reason: Worker failed to boot. 2021-04-22T10:52:36.443389+00:00 heroku[web.1]: Process exited with status 3 2021-04-22T10:52:36.637578+00:00 heroku[web.1]: State changed from starting to crashed 2021-04-22T10:55:27.910059+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=cs-sansar.herokuapp.com request_id=af486d95-d3bc-463a-8181-3c88c66df999 fwd="59.97.255.75" dyno= connect= service= status=503 bytes= protocol=https 2021-04-22T11:05:08.286594+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=cs-sansar.herokuapp.com request_id=051b33c9-4d95-4382-b49a-06b86b285692 fwd="59.97.255.75" dyno= connect= service= status=503 bytes= protocol=https 2021-04-22T11:11:29.478766+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=cs-sansar.herokuapp.com request_id=c6819801-a01f-4ad4-8650-f252e4898a3b fwd="59.97.255.75" dyno= connect= service= status=503 bytes= protocol=https
  3. Config.json配置json

     { "params": { "local_server": "True", "local_uri": "mysql+mysqlconnector://root:@localhost/cs-sansar", "prod_uri": "mysql+mysqlconnector://", "blog_name": "cs-sansar", "tag-line": "Heaven for programmers", "gmail-user": "abc16@gmail.com", "gmail-password": "vxnv2", "about_text": "CS-SANSAR or the computer science world is the absolute and right place for the geeks who want to learn trending technologies. We at CS-SANSAR provide you with efficient roadmaps to master any new tech.", "about_dev_text": "Hi everyone. This is Vinayak. I like to blog with a deep passion for learning and tutoring latest technology,": "no_of_posts", 2: "login_image". "login,jpg": "admin_user", "admin_user": "admin_password", "admin@123": "upload_location": "C:\\Users\\asus\\PycharmProjects\\Flask-blog\\static\\img" } }

Also how to correctly set production URL in config.json?另外如何在config.json中正确设置生产URL?

I think you didn't include Procfile .我认为您没有包括Procfile write this in terminal在终端写这个

pip install gunicorn

go to requirements.txt and add gunicorn==(version of gunicorn) go 到 requirements.txt 并添加 gunicorn==(gunicorn 的版本)

then make a Procfile(P should be capital) in root folder and add this然后在根文件夹中创建一个 Procfile(P 应该是大写)并添加这个

web: gunicorn main:app

push it to heroku git推到 heroku git

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 我相信在 python 中使用 pickle 模块找不到 Heroku 应用程序模块错误 - Heroku app module not found error with pickle module in python I believe 将 Flask 应用程序部署到 Heroku 时没有名为“应用程序”的模块错误 - No module named "app" error on deploying Flask app to Heroku 如何在heroku上部署Python API? 没有名为“app”的模块错误 - How to deploy Python API on heroku ? No module named 'app' error python module not found error no module named - python module not found error no module named 未找到 Python 模块错误“没有名为‘ortools’的模块” - Python module not found error "No module named 'ortools' " 找不到模块错误:没有名为“src”的模块 - Module Not Found Error: No module named 'src' HEROKU 应用程序 ModuleNotFoundError:没有名为“numpy”的模块 - HEROKU app ModuleNotFoundError: No module named 'numpy' Flask应用程序在Heroku上失败:没有名为app的模块 - Flask application failing on Heroku: no module named app Heroku 应用程序:ModuleNotFoundError:没有名为“pwa”的模块 - Heroku app: ModuleNotFoundError: No module named 'pwa' ModuleNotFoundError:Heroku上的Flask应用程序没有名为“ manage”的模块 - ModuleNotFoundError: No module named 'manage' with Flask app on Heroku
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM