centos7下启动Django项目报错(sqlite错误)
报错内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | [root@localhost project] # python3 manage.py runserver Watching for file changes with StatReloader Exception in thread django-main-thread: Traceback (most recent call last): File "/usr/local/python3/lib/python3.7/threading.py" , line 917, in _bootstrap_inner self.run() File "/usr/local/python3/lib/python3.7/threading.py" , line 865, in run self._target(*self._args, **self._kwargs) File "/usr/local/python3/lib/python3.7/site-packages/django/utils/autoreload.py" , line 64, in wrapper fn(*args, **kwargs) File "/usr/local/python3/lib/python3.7/site-packages/django/core/management/commands/runserver.py" , line 110, in inner_run autoreload.raise_last_exception() File "/usr/local/python3/lib/python3.7/site-packages/django/utils/autoreload.py" , line 87, in raise_last_exception raise _exception[1] File "/usr/local/python3/lib/python3.7/site-packages/django/core/management/__init__.py" , line 375, in execute autoreload.check_errors(django.setup)() File "/usr/local/python3/lib/python3.7/site-packages/django/utils/autoreload.py" , line 64, in wrapper fn(*args, **kwargs) File "/usr/local/python3/lib/python3.7/site-packages/django/__init__.py" , line 24, in setup apps.populate(settings.INSTALLED_APPS) File "/usr/local/python3/lib/python3.7/site-packages/django/apps/registry.py" , line 114, in populate app_config.import_models() File "/usr/local/python3/lib/python3.7/site-packages/django/apps/config.py" , line 301, in import_models self.models_module = import_module(models_module_name) File "/usr/local/python3/lib/python3.7/importlib/__init__.py" , line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>" , line 1006, in _gcd_import File "<frozen importlib._bootstrap>" , line 983, in _find_and_load File "<frozen importlib._bootstrap>" , line 967, in _find_and_load_unlocked File "<frozen importlib._bootstrap>" , line 677, in _load_unlocked File "<frozen importlib._bootstrap_external>" , line 728, in exec_module File "<frozen importlib._bootstrap>" , line 219, in _call_with_frames_removed File "/usr/local/python3/lib/python3.7/site-packages/django/contrib/auth/models.py" , line 3, in <module> from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager File "/usr/local/python3/lib/python3.7/site-packages/django/contrib/auth/base_user.py" , line 48, in <module> class AbstractBaseUser(models.Model): File "/usr/local/python3/lib/python3.7/site-packages/django/db/models/base.py" , line 122, in __new__ new_class.add_to_class( '_meta' , Options(meta, app_label)) File "/usr/local/python3/lib/python3.7/site-packages/django/db/models/base.py" , line 326, in add_to_class value.contribute_to_class(cls, name) File "/usr/local/python3/lib/python3.7/site-packages/django/db/models/options.py" , line 207, in contribute_to_class self.db_table = truncate_name(self.db_table, connection.ops.max_name_length()) File "/usr/local/python3/lib/python3.7/site-packages/django/utils/connection.py" , line 15, in __getattr__ return getattr(self._connections[self._alias], item) File "/usr/local/python3/lib/python3.7/site-packages/django/utils/connection.py" , line 62, in __getitem__ conn = self.create_connection( alias ) File "/usr/local/python3/lib/python3.7/site-packages/django/db/utils.py" , line 204, in create_connection backend = load_backend(db[ 'ENGINE' ]) File "/usr/local/python3/lib/python3.7/site-packages/django/db/utils.py" , line 111, in load_backend return import_module( '%s.base' % backend_name) File "/usr/local/python3/lib/python3.7/importlib/__init__.py" , line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "/usr/local/python3/lib/python3.7/site-packages/django/db/backends/sqlite3/base.py" , line 73, in <module> check_sqlite_version() File "/usr/local/python3/lib/python3.7/site-packages/django/db/backends/sqlite3/base.py" , line 69, in check_sqlite_version 'SQLite 3.9.0 or later is required (found %s).' % Database.sqlite_version django.core.exceptions.ImproperlyConfigured: SQLite 3.9.0 or later is required (found 3.7.17). |
报错原因:
Django的版本太高,sqlite的版本太低。
解决办法:
方法1:给Django降级
方法2:给sqlite升级
sqlite升级方式:
(1)下载sqlite安装包
(2)上传安装包到服务器上
(3)解压
(4)进入解压后的sqlite目录
(5)编译安装
1 2 3 | . /configure --prefix= /usr/local/sqlite make && make install |
(6)移除旧的sqlite版本
1 | mv /usr/bin/sqlite3 /usr/bin/sqlite3_old_version |
(7)给新的sqlite添加软链接
1 | ln -s /usr/local/sqlite/bin/sqlite3 /usr/bin/sqlite3 |
(8)修改共享库
1 2 3 | vim /etc/profile export LD_LIBRARY_PATH= "/usr/local/sqlite/lib" |
(9)生效并检查sqlite版本
1 2 3 | source /etc/profile sqlite3 --version |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现