我在使用 Ubuntu 20.04 LTS 时遇到了一个奇怪的问题。当我在命令行中输入任何无意义的单词(例如字母)时A
,它会返回与 python3.8 相关的内容,并显示“ImportError: /usr/lib/python3.8/lib-dynload/_sqlite3.cpython-38-x86_64-linux-gnu.so: 未定义符号:sqlite3_errstr”。请看下文,
huan@grape:~$ A
Traceback (most recent call last):
File "/usr/lib/command-not-found", line 28, in <module>
from CommandNotFound import CommandNotFound
File "/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py", line 19, in <module>
from CommandNotFound.db.db import SqliteDatabase
File "/usr/lib/python3/dist-packages/CommandNotFound/db/db.py", line 3, in <module>
import sqlite3
File "/usr/lib/python3.8/sqlite3/__init__.py", line 23, in <module>
from sqlite3.dbapi2 import *
File "/usr/lib/python3.8/sqlite3/dbapi2.py", line 27, in <module>
from _sqlite3 import *
ImportError: /usr/lib/python3.8/lib-dynload/_sqlite3.cpython-38-x86_64-linux-gnu.so: undefined symbol: sqlite3_errstr
我在网上搜索过,但找不到解决方案。 https://stackoverflow.com/questions/64428140/native-python3-fails-to-import-sqlite3-on-ubuntu-focal
我还检查了 的位置_sqlite3.cpython-38-x86_64-linux-gnu.so
。
huan@grape:~$ cd /
huan@grape:/$ sudo find -name _sqlite3.cpython-38-x86_64-linux-gnu.so
[sudo] password for huan:
find: ‘./run/user/1000/doc’: Permission denied
find: ‘./run/user/1000/gvfs’: Permission denied
find: ‘./proc/2196/task/2196/net’: Invalid argument
find: ‘./proc/2196/net’: Invalid argument
./snap/core20/1376/usr/lib/python3.8/lib-dynload/_sqlite3.cpython-38-x86_64-linux-gnu.so
./snap/core20/1361/usr/lib/python3.8/lib-dynload/_sqlite3.cpython-38-x86_64-linux-gnu.so
./usr/lib/python3.8/lib-dynload/_sqlite3.cpython-38-x86_64-linux-gnu.so
huan@grape:/$
它可以在/usr/lib/python3.8/lib-dynload
目录以及/snap/core20/1376/usr/lib/python3.8/lib-dynload/
目录中找到/snap/core20/1361/usr/lib/python3.8/lib-dynload/
。
我的问题是,为什么无意义的命令“A”会与 Python3.8 的 sqlite3 模块相关?我甚至没有对 SQL 进行任何操作。我该如何解决这些烦人的返回值?
任何建议都将不胜感激。—— Huan
答案1
我有同样的问题,但我不认为这与 Ubuntu 20.04 有关,因为我正在使用 Ubuntu 18.04。
就我而言(我在 conda 环境中工作),只需重新安装 sqlite 即可解决问题。
conda install sqlite --force-reinstall
希望能帮助到你