FreeBSD 14.2 Python3.12 安装Kotti ,运行时报错:ModuleNotFoundError: No module named '_sqlite3'
运行报错
pserve app.ini
报错:
File "/usr/home/skywalk/fbpy312/lib/python3.12/site-packages/sqlalchemy/dialects/sqlite/pysqlite.py", line 457, in import_dbapi
from sqlite3 import dbapi2 as sqlite
File "/usr/local/lib/python3.12/sqlite3/__init__.py", line 57, in <module>
from sqlite3.dbapi2 import *
File "/usr/local/lib/python3.12/sqlite3/dbapi2.py", line 27, in <module>
from _sqlite3 import *
ModuleNotFoundError: No module named '_sqlite3'
直接import 测试也是同样报错
>>> import sqlist3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'sqlist3'
>>> import sqlite3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.12/sqlite3/__init__.py", line 57, in <module>
from sqlite3.dbapi2 import *
File "/usr/local/lib/python3.12/sqlite3/dbapi2.py", line 27, in <module>
from _sqlite3 import *
ModuleNotFoundError: No module named '_sqlite3'
>>>
尝试各种方法安装,但是python3.12环境下就是安装不上
编译安装python3.12的时候最后提示:
Note that some standard Python modules are provided as separate ports
as they require additional dependencies. They are available as:
py312-gdbm databases/py-gdbm@py312
py312-sqlite3 databases/py-sqlite3@py312
py312-tkinter x11-toolkits/py-tkinter@py312
不明白应该怎么做。
尝试解决问题:
去ports手工安装sqlite3
执行
/usr/ports/databases/py-sqlite3 % make install clean
不行,拿到的是python3.11的...
尝试安装pkg
没有python3.12的sqlite3的pkg包
只有sqlite3-3.46.1_1,1,但是pkg install安装之后,说已经安装了,证明这个也不管用。
仔细排比
另一台FreeBSD14.2系统里的python3.12就可以正常使用sqlite3,证明自己以前安装成功过。
最后决定手工下载源代码,编译安装。
最终成功解决问题,参见:https://skywalk.blog.csdn.net/article/details/148167814