Python sqlite3.0错误:无法打开数据库文件(灾难响应管道)
关于灾难响应管道的数据科学python代码显示了一个错误,我不知道原因 我执行:Python sqlite3.0错误:无法打开数据库文件(灾难响应管道),python,sqlite,flask-sqlalchemy,Python,Sqlite,Flask Sqlalchemy,关于灾难响应管道的数据科学python代码显示了一个错误,我不知道原因 我执行: python应用程序/runn.py../models/classifier.pklsqlite:///../data/DisasterResponse.db 并获取以下错误: sqlite3.0错误:无法打开数据库文件 我怎样才能解决这个问题 我的代码: import json import plotly import pandas as pd import pickle from nltk.stem imp
python应用程序/runn.py../models/classifier.pklsqlite:///../data/DisasterResponse.db
并获取以下错误:
sqlite3.0错误:无法打开数据库文件
我怎样才能解决这个问题
我的代码:
import json
import plotly
import pandas as pd
import pickle
from nltk.stem import WordNetLemmatizer
from nltk.tokenize import word_tokenize
from flask import Flask
from flask import render_template, request, jsonify
from plotly.graph_objs import Bar
from sklearn.externals import joblib
from sqlalchemy import create_engine
app = Flask(__name__)
def tokenize(text):
'''
INPUT
text: Text to be processed
OUTPUT
Returns a processed text variable that was tokenized, lower cased, stripped, and lemmatized
'''
tokens = word_tokenize(text)
lemmatizer = WordNetLemmatizer()
clean_tokens = []
for tok in tokens:
clean_tok = lemmatizer.lemmatize(tok).lower().strip()
clean_tokens.append(clean_tok)
return clean_tokens
# load data
engine = create_engine('sqlite:///../data/DisasterResponse.db')
df = pd.read_sql_table('DisasterMessage', engine)
print(df.head())
# load model
model = pickle.load(open("../models/classifier.pkl", 'rb'))
print(model)
X = df.message.values
y = df.iloc[:,5:]
keys = list(y.columns)
my_dict = {key: None for key in keys}
for key, value in my_dict.items():
my_dict[key] = ((y[key] == 1)).sum()
# index webpage displays cool visuals and receives user input text for model
@app.route('/')
@app.route('/index')
def index():
# extract data needed for visuals
genre_counts = df.groupby('genre').count()['message']
genre_names = list(genre_counts.index)
### data for visualizing category counts.
label_sums = df.iloc[:, 4:].sum()
label_names = list(label_sums.index)
# create visuals
graphs = [
{
'data': [
Bar(
x=genre_names,
y=genre_counts
)
],
'layout': {
'title': 'Distribution of Message Genres',
'yaxis': {
'title': "Count"
},
'xaxis': {
'title': "Genre"
}
}
},
{
'data': [
Bar(
x=label_names,
y=label_sums,
)
],
'layout': {
'title': 'Distribution of categories',
'yaxis': {
'title': "Count"
},
'xaxis': {
},
}
}
]
# encode plotly graphs in JSON
ids = ["graph-{}".format(i) for i, _ in enumerate(graphs)]
graphJSON = json.dumps(graphs, cls=plotly.utils.PlotlyJSONEncoder)
# render web page with plotly graphs
return render_template('master.html', ids=ids, graphJSON=graphJSON)
# web page that handles user query and displays model results
@app.route('/go')
def go():
# save user input in query
query = request.args.get('query', '')
# use model to predict classification for query
classification_labels = model.predict([query])[0]
classification_results = dict(zip(df.columns[4:], classification_labels))
# This will render the go.html Please see that file.
return render_template(
'go.html',
query=query,
classification_result=classification_results
)
def main():
app.run(host='0.0.0.0', port=3001, debug=True)
if __name__ == '__main__':
main()
以下是堆栈跟踪:
Traceback (most recent call last):
File "/opt/conda/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2228, in _wrap_pool_connect
return fn()
File "/opt/conda/lib/python3.6/site-packages/sqlalchemy/pool.py", line 365, in unique_connection
return _ConnectionFairy._checkout(self)
File "/opt/conda/lib/python3.6/site-packages/sqlalchemy/pool.py", line 822, in _checkout
fairy = _ConnectionRecord.checkout(pool)
File "/opt/conda/lib/python3.6/site-packages/sqlalchemy/pool.py", line 554, in checkout
rec = pool._do_get()
File "/opt/conda/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1346, in _do_get
return self._create_connection()
File "/opt/conda/lib/python3.6/site-packages/sqlalchemy/pool.py", line 370, in _create_connection
return _ConnectionRecord(self)
File "/opt/conda/lib/python3.6/site-packages/sqlalchemy/pool.py", line 499, in __init__
self.__connect(first_connect_check=True)
File "/opt/conda/lib/python3.6/site-packages/sqlalchemy/pool.py", line 701, in __connect
connection = pool._invoke_creator(self)
File "/opt/conda/lib/python3.6/site-packages/sqlalchemy/engine/strategies.py", line 114, in connect
return dialect.connect(*cargs, **cparams)
File "/opt/conda/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 437, in connect
return self.dbapi.connect(*cargs, **cparams)
sqlite3.OperationalError: unable to open database file
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "app/runn.py", line 37, in <module>
df = pd.read_sql_table('DisasterMessage', engine)
File "/opt/conda/lib/python3.6/site-packages/pandas/io/sql.py", line 240, in read_sql_table
meta.reflect(only=[table_name], views=True)
File "/opt/conda/lib/python3.6/site-packages/sqlalchemy/sql/schema.py", line 4097, in reflect
with bind.connect() as conn:
File "/opt/conda/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2171, in connect
return self._connection_cls(self, **kwargs)
File "/opt/conda/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 103, in __init__
else engine.raw_connection()
File "/opt/conda/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2259, in raw_connection
self.pool.unique_connection, _connection
File "/opt/conda/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2232, in _wrap_pool_connect
e, dialect, self
File "/opt/conda/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 1528, in _handle_dbapi_exception_noconnection
util.raise_from_cause(sqlalchemy_exception, exc_info)
File "/opt/conda/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 296, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb, cause=cause)
File "/opt/conda/lib/python3.6/site-packages/sqlalchemy/util/compat.py", line 276, in reraise
raise value.with_traceback(tb)
File "/opt/conda/lib/python3.6/site-packages/sqlalchemy/engine/base.py", line 2228, in _wrap_pool_connect
return fn()
File "/opt/conda/lib/python3.6/site-packages/sqlalchemy/pool.py", line 365, in unique_connection
return _ConnectionFairy._checkout(self)
File "/opt/conda/lib/python3.6/site-packages/sqlalchemy/pool.py", line 822, in _checkout
fairy = _ConnectionRecord.checkout(pool)
File "/opt/conda/lib/python3.6/site-packages/sqlalchemy/pool.py", line 554, in checkout
rec = pool._do_get()
File "/opt/conda/lib/python3.6/site-packages/sqlalchemy/pool.py", line 1346, in _do_get
return self._create_connection()
File "/opt/conda/lib/python3.6/site-packages/sqlalchemy/pool.py", line 370, in _create_connection
return _ConnectionRecord(self)
File "/opt/conda/lib/python3.6/site-packages/sqlalchemy/pool.py", line 499, in __init__
self.__connect(first_connect_check=True)
File "/opt/conda/lib/python3.6/site-packages/sqlalchemy/pool.py", line 701, in __connect
connection = pool._invoke_creator(self)
File "/opt/conda/lib/python3.6/site-packages/sqlalchemy/engine/strategies.py", line 114, in connect
return dialect.connect(*cargs, **cparams)
File "/opt/conda/lib/python3.6/site-packages/sqlalchemy/engine/default.py", line 437, in connect
return self.dbapi.connect(*cargs, **cparams)
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) unable to open database file (Background on this error at: http://sqlalche.me/e/e3q8)
回溯(最近一次呼叫最后一次):
文件“/opt/conda/lib/python3.6/site packages/sqlalchemy/engine/base.py”,第2228行,在“包装”池中
返回fn()
文件“/opt/conda/lib/python3.6/site-packages/sqlalchemy/pool.py”,第365行,处于唯一连接中
返回\u连接\u签出(自我)
文件“/opt/conda/lib/python3.6/site packages/sqlalchemy/pool.py”,第822行,in-u签出
fairy=\u ConnectionRecord.checkout(池)
文件“/opt/conda/lib/python3.6/site packages/sqlalchemy/pool.py”,第554行,在签出中
rec=pool.\u do\u get()
文件“/opt/conda/lib/python3.6/site packages/sqlalchemy/pool.py”,第1346行,在
返回self.\u创建\u连接()
文件“/opt/conda/lib/python3.6/site packages/sqlalchemy/pool.py”,第370行,在创建连接中
返回连接记录(自身)
文件“/opt/conda/lib/python3.6/site packages/sqlalchemy/pool.py”,第499行,在__
自我连接(第一次连接检查=真)
文件“/opt/conda/lib/python3.6/site packages/sqlalchemy/pool.py”,第701行,在连接中
连接=池。\u调用\u创建者(自身)
文件“/opt/conda/lib/python3.6/site packages/sqlalchemy/engine/strategies.py”,第114行,在connect中
返回方言。连接(*cargs,**cparams)
文件“/opt/conda/lib/python3.6/site packages/sqlalchemy/engine/default.py”,第437行,在connect中
返回self.dbapi.connect(*cargs,**cparams)
sqlite3.0错误:无法打开数据库文件
上述异常是以下异常的直接原因:
回溯(最近一次呼叫最后一次):
文件“app/runn.py”,第37行,在
df=pd.read\u sql\u表('DisasterMessage',引擎)
read_sql_表中的文件“/opt/conda/lib/python3.6/site packages/pandas/io/sql.py”,第240行
reflect(仅=[table_name],views=True)
文件“/opt/conda/lib/python3.6/site packages/sqlalchemy/sql/schema.py”,第4097行,在reflect中
使用bind.connect()作为连接:
文件“/opt/conda/lib/python3.6/site packages/sqlalchemy/engine/base.py”,第2171行,在connect中
返回self.\u连接\u cls(self,**kwargs)
文件“/opt/conda/lib/python3.6/site packages/sqlalchemy/engine/base.py”,第103行,在__
else引擎原始连接()
原始连接中的文件“/opt/conda/lib/python3.6/site packages/sqlalchemy/engine/base.py”,第2259行
self.pool.unique\u连接,\u连接
文件“/opt/conda/lib/python3.6/site packages/sqlalchemy/engine/base.py”,第2232行,在“包装”池中
e、 方言
文件“/opt/conda/lib/python3.6/site packages/sqlalchemy/engine/base.py”,第1528行,在\u handle\u dbapi\u exception\u noconnection中
util.raise\u from\u cause(sqlalchemy\u异常,exc\u信息)
文件“/opt/conda/lib/python3.6/site packages/sqlalchemy/util/compat.py”,第296行,从原因开始
重新释放(类型(异常),异常,tb=exc\U tb,原因=原因)
文件“/opt/conda/lib/python3.6/site-packages/sqlalchemy/util/compat.py”,第276行,重新登录
通过_回溯(tb)提升值
文件“/opt/conda/lib/python3.6/site packages/sqlalchemy/engine/base.py”,第2228行,在“包装”池中
返回fn()
文件“/opt/conda/lib/python3.6/site-packages/sqlalchemy/pool.py”,第365行,处于唯一连接中
返回\u连接\u签出(自我)
文件“/opt/conda/lib/python3.6/site packages/sqlalchemy/pool.py”,第822行,in-u签出
fairy=\u ConnectionRecord.checkout(池)
文件“/opt/conda/lib/python3.6/site packages/sqlalchemy/pool.py”,第554行,在签出中
rec=pool.\u do\u get()
文件“/opt/conda/lib/python3.6/site packages/sqlalchemy/pool.py”,第1346行,在
返回self.\u创建\u连接()
文件“/opt/conda/lib/python3.6/site packages/sqlalchemy/pool.py”,第370行,在创建连接中
返回连接记录(自身)
文件“/opt/conda/lib/python3.6/site packages/sqlalchemy/pool.py”,第499行,在__
自我连接(第一次连接检查=真)
文件“/opt/conda/lib/python3.6/site packages/sqlalchemy/pool.py”,第701行,在连接中
连接=池。\u调用\u创建者(自身)
文件“/opt/conda/lib/python3.6/site packages/sqlalchemy/engine/strategies.py”,第114行,在connect中
返回方言。连接(*cargs,**cparams)
文件“/opt/conda/lib/python3.6/site packages/sqlalchemy/engine/default.py”,第437行,在connect中
返回self.dbapi.connect(*cargs,**cparams)
sqlalchemy.exc.OperationalError:(sqlite3.OperationalError)无法打开数据库文件(此错误的背景信息位于:http://sqlalche.me/e/e3q8)
“无法打开数据库文件”是错误的原因。检查文件是否在正确的plce中。错误原因是“无法打开数据库文件”。检查文件是否在正确的plce中。