我的Linux机器安装了sqlite3:
[root@airflow-xxxxx bin]# which sqlite3
/bin/sqlite3
[root@airflow-xxxxx bin]#然而,在我的机器上有两个版本的Python : 3.6.8和3.9.10:
[root@airflow-xxxxx bin]# python3
Python 3.6.8 (default, Aug 13 2020, 07:46:32)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
>>> exit()
[root@airflow-xxxxx bin]# python
Python 3.9.10 (main, Nov 21 2022, 14:02:10)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.9/sqlite3/__init__.py", line 57, in <module>
from sqlite3.dbapi2 import *
File "/usr/local/lib/python3.9/sqlite3/dbapi2.py", line 27, in <module>
from _sqlite3 import *
ModuleNotFoundError: No module named '_sqlite3'
>>>但只有3.6版本才能识别已安装的sqlite3。我试着安装sqlite,但从Nexus获得了“模块找不到”。据我所知,SQLite与Python捆绑在一起。如何让Python3.9识别已安装的SQLite?
发布于 2022-11-22 12:42:43
实际上,我最近遇到了这个问题,问题是安装的顺序,_sqlite3问题似乎只发生在python3.8及以上版本的源代码构建时。
巨蟒的两个装置是如何安装在机器上的?一种解决方案是将3.9完全卸载(当我遇到这个问题时,我使用了这个答案https://unix.stackexchange.com/questions/190794/uninstall-python-installed-by-compiling-source)然后yum install sqlite-devel,只有在它完成之后,才能再次从源代码中构建python,作为altinstall使用:
./configure --enable-optimizations --enable-loadable-sqlite-extensions如果您不确定如何从源代码构建python,可以使用本教程:
https://docs.posit.co/resources/install-python-source/注意,您需要添加--enable-loadable-sqlite-extensions标志
您还可以使用asnwer (如这个:https://superuser.com/questions/686980/how-to-install-alternative-version-of-python-beside-distro-supplied )来创建一个备用分期付款。
无论如何,这是一种真正的痛苦,我希望这能帮上忙
https://stackoverflow.com/questions/74532551
复制相似问题