Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.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 sqlite3.0错误:无法打开数据库文件(灾难响应管道)_Python_Sqlite_Flask Sqlalchemy - Fatal编程技术网

Python sqlite3.0错误:无法打开数据库文件(灾难响应管道)

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代码显示了一个错误,我不知道原因

我执行:

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中。