在Linux机器中的Django项目(在AWS中)中,我使用:
我已经为我的项目创建了虚拟环境,所有的依赖项都安装在那里。对于数据库,我使用的是sqlite3。有关版本详细信息,请参阅下面。
>>>import sqlite3
>>>sqlite3.version
'2.6.0'
>>>sqlite3.sqlite_version_info
(3, 7, 17)在settings.py中,数据库部分如下:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}在运行runserver时,我得到了一个异常,名为sqlite3.NotSupportdError:URI不支持,因为它生成了一个错误,URI不支持,我无法修复该错误。
我已经看过像djangoproject.com和google.forum这样的帖子,但是仍然无法理解这个错误的原因。我还试着做,但同样的错误也出现了。
注意:在windows机器中,我的项目运行良好。
请参阅下面的回溯:
# python manage.py runserver
Performing system checks...
System check identified no issues (0 silenced).
Unhandled exception in thread started by <function check_errors.
<locals>.wrapper at 0x7f07ff09c2f0>
Traceback (most recent call last):
File "/tech/poc/env/lib/python3.5/site-packages/django/db/backends/base/base.py", line 213, in ensure_connection
self.connect()
File "/tech/poc/env/lib/python3.5/site- packages/django/db/backends/base/base.py", line 189, in connect
self.connection = self.get_new_connection(conn_params)
File "/tech/poc/env/lib/python3.5/site-packages/django/db/backends/sqlite3/base.py", line 198, in get_new_connection
conn = Database.connect(**conn_params)
sqlite3.NotSupportedError: URIs not supported
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/tech/poc/env/lib/python3.5/site-packages/django/utils/autoreload.py", line 228, in wrapper
fn(*args, **kwargs)
File "/tech/poc/env/lib/python3.5/site-packages/django/core/management/commands/runserver.py", line 128, in inner_run
self.check_migrations()
File "/tech/poc/env/lib/python3.5/site-packages/django/core/management/base.py", line 422, in check_migrations
executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS])
File "/tech/poc/env/lib/python3.5/site-packages/django/db/migrations/executor.py", line 20, in __init__
self.loader = MigrationLoader(self.connection)
File "/tech/poc/env/lib/python3.5/site-packages/django/db/migrations/loader.py", line 52, in __init__
self.build_graph()
File "/tech/poc/env/lib/python3.5/site-packages/django/db/migrations/loader.py", line 209, in build_graph
self.applied_migrations = recorder.applied_migrations()
File "/tech/poc/env/lib/python3.5/site-packages/django/db/migrations/recorder.py", line 65, in applied_migrations
self.ensure_schema()
File "/tech/poc/env/lib/python3.5/site-packages/django/db/migrations/recorder.py", line 52, in ensure_schema
if self.Migration._meta.db_table in self.connection.introspection.table_names(self.connection.cursor()):
File "/tech/poc/env/lib/python3.5/site-packages/django/db/backends/base/base.py", line 254, in cursor
return self._cursor()
File "/tech/poc/env/lib/python3.5/site-packages/django/db/backends/base/base.py", line 229, in _cursor
self.ensure_connection()
File "/tech/poc/env/lib/python3.5/site-packages/django/db/backends/base/base.py", line 213, in ensure_connection
self.connect()
File "/tech/poc/env/lib/python3.5/site-packages/django/db/utils.py", line 94, in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/tech/poc/env/lib/python3.5/site-packages/django/utils/six.py", line 685, in reraise
raise value.with_traceback(tb)
File "/tech/poc/env/lib/python3.5/site-packages/django/db/backends/base/base.py", line 213, in ensure_connection
self.connect()
File "/tech/poc/env/lib/python3.5/site-packages/django/db/backends/base/base.py", line 189, in connect
self.connection = self.get_new_connection(conn_params)
File "/tech/poc/env/lib/python3.5/site-packages/django/db/backends/sqlite3/base.py", line 198, in get_new_connection
conn = Database.connect(**conn_params)
django.db.utils.NotSupportedError: URIs not supported请帮助理解并修复此错误。这个问题没有相关的文章,我也没有在google中找到任何相关的信息。
发布于 2019-08-13 05:06:40
我也遇到了类似的问题。原来Django 2.1与sqlit3.6.20不兼容。降级到2.0.x版本,你应该会很好。这个问题已经被提出,并被命名为“封闭的bug- wontfix”这里。
发布于 2019-05-15 09:03:01
1.您必须首先检查sqlite3版本。应该是3.X --我的配置是Python 3.7、django 2.1.7和sqlite3。您可以检查sqlite3版本如下:>>import sqlite3
>>sqlite3.version '2.6.0‘>>> sqlite3.sqlite_version_info (3,6,20)
"/usr/local/lib/python3.7/site-packages/django/db/backends/sqlite3/base.py",查找行“kwargs.update({'check_same_thread': False, 'uri': False})如果'uri‘为真”,然后将其改为False作为root。代码更改后,重新启动计算机并运行python runserver migrate --这将解决您的问题。另外,您可以尝试用硬编码的db.sqli3文件名在SETTINGS.py文件中更改数据库‘name’。
发布于 2018-03-27 06:19:00
检查BASE_DIR设置中指定的路径。
https://stackoverflow.com/questions/49500117
复制相似问题