Python Elastic Beanstalk不适用于SQLite

Python Elastic Beanstalk不适用于SQLite,python,sqlite,amazon-web-services,flask,amazon-elastic-beanstalk,Python,Sqlite,Amazon Web Services,Flask,Amazon Elastic Beanstalk,我想使用Flask框架在AmazonEB上建立一个非常简单的网站。该网站有一个欢迎表单,它从用户那里获取两个值,读取SQLite数据库并在屏幕上显示结果。这个网站在我的本地机器上运行得很好。问题出在弹性豆茎上 我使用application.py、SQLite数据库、静态文件夹(用于引导)和模板文件夹(用于两个模板)创建了一个zip文件,并将其上载到Elastic Beanstalk上。我的系统是windows,运行python 3.6。上传后,EB给我绿色状态。我单击电子商务上的链接,然后进入表

我想使用Flask框架在AmazonEB上建立一个非常简单的网站。该网站有一个欢迎表单,它从用户那里获取两个值,读取SQLite数据库并在屏幕上显示结果。这个网站在我的本地机器上运行得很好。问题出在弹性豆茎上

我使用application.py、SQLite数据库、静态文件夹(用于引导)和模板文件夹(用于两个模板)创建了一个zip文件,并将其上载到Elastic Beanstalk上。我的系统是windows,运行python 3.6。上传后,EB给我绿色状态。我单击电子商务上的链接,然后进入表单。到目前为止一切正常。然后,当我点击表单时,按钮submit将我带到结果页面,但我收到:

内部服务器错误 服务器遇到内部错误,无法完成您的请求。服务器过载或应用程序出错。

我编写代码以确定Amazon EB无法理解的步骤,并且程序似乎在cur.execute(选择a、b、c、d、e、f)行失败,这意味着Amazon EB无法查看/理解我的SQLITE数据库

有人能帮忙吗

这是我的flask程序application.py代码:

import os
import sqlite3
from flask import Flask, request, render_template

application = Flask(__name__)
@application.route('/', methods=['POST', 'GET'])
def index():
  if request.method == 'GET':
    return render_template('welcome.html')
  elif request.method == 'POST':
    conn = sqlite3.connect('Sky.db')
    cur = conn.cursor()
    weekendid= request.form['weekend']

    myData=[]
    cur.execute('''SELECT a, b, c, d, e, f, g
    FROM Table1 WHERE a = ? ORDER BY g DESC LIMIT 5''', (weekendid,))
    row = cur.fetchall()
    for i in row:
        average_1 = (i[1]+i[3])/2
        average_2 = (i[2]+i[4])/2
        variable1 = i[5]
        variable2 = i[6]
        cur.execute('''SELECT * FROM Table2 WHERE a = ?''', (i[0],))
        coords=cur.fetchone()
        zz = [average_1, average_2,variable1,variable2]

        myData.append(zz)

    return render_template('where.html', myData=myData)

if __name__ == '__main__':
    application.debug = True
    host = os.environ.get('IP', '127.0.0.1')
    port = int(os.environ.get('PORT', 80))
    application.run(host=host, port=port)

首先,在Elastic Beanstalk上使用SQLite时要小心,因为如果您更改配置,可能会杀死您的实例并重新部署。在您的情况下,看起来并不是在向数据库写入数据,所以这不是问题

查找错误的第一步可能是转到Elastic Beanstalk控制台并单击请求日志。它位于日志窗格下。

在那里,您应该能够从实例中获取日志,并在
/var/log/httpd/error\u log
下找到实际错误


您可能还希望通过ssh连接到您的实例,并验证路径是否符合预期。当然,您也可以通过这种方式查找日志。如果您使用的是eb控制台工具,您只需执行
eb ssh

我发现了问题所在…这是数据库的问题。它已锁定。只需右键单击属性并单击“允许f”为所有用户提供“ull control”。这解决了它…谢谢!@JohnG如果我的答案有帮助,请允许我请您使用复选标记将其标记为已回答。这样,它就不会显示为仍需要回答,而且我还因回答而获得了一点声誉。