【发布时间】:2020-11-01 11:43:48
【问题描述】:
我使用最新的 Python 版本 (3.8.3) 在 Django (3.0.8) 中开发了一个网站。我正在使用安装了 Python 3.6.9 的 Unix 服务器,其中包括 Sqlite 版本 3.7.17。 Django 显然需要 Sqlite 3.8 或更高版本。
所以,我按照此处的指南编译了最新 Python 的本地副本:https://www.a2hosting.com/kb/developer-corner/python/using-a-newer-version-of-python
我如上所述设置了一个虚拟环境,一切正常,除了 Python 仍在使用旧的 Sqlite 版本。经过数小时的工作试图弄清楚这一切,我很难过。
我可以在标准环境下通过命令行访问Python和Sqlite3:
-bash-4.2$ python --version
Python 3.6.9
-bash-4.2$ python
>>> import sqlite3, inspect
>>> sqlite3.sqlite_version
'3.7.17'
>>> inspect.getfile(sqlite3)
'opt/rh/rh-python36/root/usr/lib64/python3.6/sqlite3/__init__.py'
在虚拟环境中:
-bash-4.2$ source bin/venv/bin/activate
(venv) -bash-4.2$ python --version
Python 3.8.3
-bash-4.2$ python
>>> import sqlite3, inspect
>>> sqlite3.sqlite_version
'3.7.17'
>>> inspect.getfile(sqlite3)
'users/.../lib/python3.8/sqlite3/__init__.py
因此,尽管在虚拟环境中运行 Python 3.8.3 并指向正确的库(据我所知),但 sqlite 版本仍然与标准环境相同。任何建议将不胜感激!
【问题讨论】:
标签: python django sqlite virtualenv