Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.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 sqlalchemy.exc.OperationalError:(sqlite3.OperationalError)尝试创建数据库时无法打开数据库文件错误_Python_Amazon Web Services_Sqlalchemy_Ubuntu 18.04 - Fatal编程技术网

Python sqlalchemy.exc.OperationalError:(sqlite3.OperationalError)尝试创建数据库时无法打开数据库文件错误

Python sqlalchemy.exc.OperationalError:(sqlite3.OperationalError)尝试创建数据库时无法打开数据库文件错误,python,amazon-web-services,sqlalchemy,ubuntu-18.04,Python,Amazon Web Services,Sqlalchemy,Ubuntu 18.04,我在AWS上的Ubuntu 18.04 Lightsail实例中工作。当我在python3中运行下面的代码时,会出现以下错误。除了最后一行Base.metadata.create\u all(engine),此脚本中的每一行都运行良好。该行产生以下错误 import os import sys from sqlalchemy import Column, ForeignKey, Integer, String from sqlalchemy.ext.declarative import decl

我在AWS上的Ubuntu 18.04 Lightsail实例中工作。当我在python3中运行下面的代码时,会出现以下错误。除了最后一行
Base.metadata.create\u all(engine)
,此脚本中的每一行都运行良好。该行产生以下错误

import os
import sys
from sqlalchemy import Column, ForeignKey, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship
from sqlalchemy import create_engine
from support_functions import get_input_args
Base = declarative_base()
engine = create_engine('sqlite:///db_test.db')
Base.metadata.create_all(engine)
我得到的错误是:

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 2275, in _wrap_pool_connect
    return fn()
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/pool/base.py", line 363, in connect
    return _ConnectionFairy._checkout(self)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/pool/base.py", line 760, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/pool/base.py", line 492, in checkout
    rec = pool._do_get()
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/pool/impl.py", line 238, in _do_get
    return self._create_connection()
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/pool/base.py", line 308, in _create_connection
    return _ConnectionRecord(self)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/pool/base.py", line 437, in __init__
    self.__connect(first_connect_check=True)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/pool/base.py", line 639, in __connect
    connection = pool._invoke_creator(self)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/strategies.py", line 114, in connect
    return dialect.connect(*cargs, **cparams)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/default.py", line 453, 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 "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/sql/schema.py", line 4294, in create_all
    ddl.SchemaGenerator, self, checkfirst=checkfirst, tables=tables
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 2045, in _run_visitor
    with self._optional_conn_ctx_manager(connection) as conn:
  File "/usr/lib/python3.6/contextlib.py", line 81, in __enter__
    return next(self.gen)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 2037, in _optional_conn_ctx_manager
    with self._contextual_connect() as conn:
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 2239, in _contextual_connect
    self._wrap_pool_connect(self.pool.connect, None),
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 2279, in _wrap_pool_connect
    e, dialect, self
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 1544, in _handle_dbapi_exception_noconnection
    util.raise_from_cause(sqlalchemy_exception, exc_info)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/util/compat.py", line 398, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb, cause=cause)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/util/compat.py", line 152, in reraise
    raise value.with_traceback(tb)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py", line 2275, in _wrap_pool_connect
    return fn()
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/pool/base.py", line 363, in connect
    return _ConnectionFairy._checkout(self)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/pool/base.py", line 760, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/pool/base.py", line 492, in checkout
    rec = pool._do_get()
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/pool/impl.py", line 238, in _do_get
    return self._create_connection()
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/pool/base.py", line 308, in _create_connection
    return _ConnectionRecord(self)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/pool/base.py", line 437, in __init__
    self.__connect(first_connect_check=True)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/pool/base.py", line 639, in __connect
    connection = pool._invoke_creator(self)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/strategies.py", line 114, in connect
    return dialect.connect(*cargs, **cparams)
  File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/default.py", line 453, 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)
回溯(最近一次呼叫最后一次):
文件“/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py”,第2275行,在_-wrap\u-pool\u-connect中
返回fn()
文件“/usr/local/lib/python3.6/dist-packages/sqlalchemy/pool/base.py”,第363行,在connect中
返回\u连接\u签出(自我)
文件“/usr/local/lib/python3.6/dist-packages/sqlalchemy/pool/base.py”,第760行,in\u签出
fairy=\u ConnectionRecord.checkout(池)
文件“/usr/local/lib/python3.6/dist-packages/sqlalchemy/pool/base.py”,第492行,在签出中
rec=pool.\u do\u get()
文件“/usr/local/lib/python3.6/dist-packages/sqlalchemy/pool/impl.py”,第238行,在
返回self.\u创建\u连接()
文件“/usr/local/lib/python3.6/dist-packages/sqlalchemy/pool/base.py”,第308行,在创建连接中
返回连接记录(自身)
文件“/usr/local/lib/python3.6/dist-packages/sqlalchemy/pool/base.py”,第437行,在__
自我连接(第一次连接检查=真)
文件“/usr/local/lib/python3.6/dist-packages/sqlalchemy/pool/base.py”,第639行,在
连接=池。\u调用\u创建者(自身)
文件“/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/strategies.py”,第114行,在connect中
返回方言。连接(*cargs,**cparams)
文件“/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/default.py”,第453行,在connect中
返回self.dbapi.connect(*cargs,**cparams)
sqlite3.0错误:无法打开数据库文件
上述异常是以下异常的直接原因:
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/usr/local/lib/python3.6/dist packages/sqlalchemy/sql/schema.py”,第4294行,在create_all中
ddl.SchemaGenerator,self,checkfirst=checkfirst,tables=tables
文件“/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py”,第2045行,在
使用self.\u可选\u连接\u ctx\u管理器(连接)作为连接:
文件“/usr/lib/python3.6/contextlib.py”,第81行,输入__
返回下一个(self.gen)
文件“/usr/local/lib/python3.6/dist packages/sqlalchemy/engine/base.py”,第2037行,位于可选连接ctx管理器中
使用self.\u context\u connect()作为连接:
文件“/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py”,第2239行,在上下文连接中
self.\u wrap\u pool\u connect(self.pool.connect,无),
文件“/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py”,第2279行,在_-wrap\u-pool\u-connect中
e、 方言
文件“/usr/local/lib/python3.6/dist packages/sqlalchemy/engine/base.py”,第1544行,在\u handle\u dbapi\u exception\u noconnection中
util.raise\u from\u cause(sqlalchemy\u异常,exc\u信息)
文件“/usr/local/lib/python3.6/dist-packages/sqlalchemy/util/compat.py”,第398行,在raise\u from\u cause中
重新释放(类型(异常),异常,tb=exc\U tb,原因=原因)
文件“/usr/local/lib/python3.6/dist-packages/sqlalchemy/util/compat.py”,第152行,在reraise中
通过_回溯(tb)提升值
文件“/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/base.py”,第2275行,在_-wrap\u-pool\u-connect中
返回fn()
文件“/usr/local/lib/python3.6/dist-packages/sqlalchemy/pool/base.py”,第363行,在connect中
返回\u连接\u签出(自我)
文件“/usr/local/lib/python3.6/dist-packages/sqlalchemy/pool/base.py”,第760行,in\u签出
fairy=\u ConnectionRecord.checkout(池)
文件“/usr/local/lib/python3.6/dist-packages/sqlalchemy/pool/base.py”,第492行,在签出中
rec=pool.\u do\u get()
文件“/usr/local/lib/python3.6/dist-packages/sqlalchemy/pool/impl.py”,第238行,在
返回self.\u创建\u连接()
文件“/usr/local/lib/python3.6/dist-packages/sqlalchemy/pool/base.py”,第308行,在创建连接中
返回连接记录(自身)
文件“/usr/local/lib/python3.6/dist-packages/sqlalchemy/pool/base.py”,第437行,在__
自我连接(第一次连接检查=真)
文件“/usr/local/lib/python3.6/dist-packages/sqlalchemy/pool/base.py”,第639行,在
连接=池。\u调用\u创建者(自身)
文件“/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/strategies.py”,第114行,在connect中
返回方言。连接(*cargs,**cparams)
文件“/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/default.py”,第453行,在connect中
返回self.dbapi.connect(*cargs,**cparams)
sqlalchemy.exc.OperationalError:(sqlite3.OperationalError)无法打开数据库文件
(有关此错误的背景信息,请访问:http://sqlalche.me/e/e3q8)

将'sqlite://'更改为'sqlite://'

如果您在打开数据库时遇到问题,请查看以下文档:
SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or 'sqlite://' + os.path.join(basedir, 'app.db')