You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Feb 24, 2023. It is now read-only.
Repository navigation
This repository was archived by the owner on Feb 24, 2023. It is now read-only.
Missing sqlite3 - cannot locate symbol "log" referenced by "/data/local/tmp/usr/lib/python3.9/lib-dynload/_sqlite3.cpython-39.so" #40
When i'm trying to execute a python script i get that :
[CRITICAL] missing one or more core extensions ('sqlite3') most likely because current version of Python has been built without appropriate dev packages
I have tried :
python3 -c "import sqlite3" and it prints out :
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/data/local/tmp/usr/lib/python3.9/sqlite3/__init__.py", line 23, in <module>
from sqlite3.dbapi2 import *
File "/data/local/tmp/usr/lib/python3.9/sqlite3/dbapi2.py", line 27, in <module>
from _sqlite3 import *
ImportError: dlopen failed: cannot locate symbol "log" referenced by "/data/local/tmp/usr/lib/python3.9/lib-dynload/_sqlite3.cpython-39.so"
In the setup.py this is all i found, and doesn't seems to be related to this issue :
ImportError: dlopen failed: cannot locate symbol "log" referenced by "/data/local/tmp/usr/lib/python3.9/lib-dynload/_sqlite3.cpython-39.so"
This is the content of setup.py about Sqlite
def detect_sqlite(self):
# The sqlite interface
sqlite_setup_debug = False # verbose debug prints from this script?
# We hunt for #define SQLITE_VERSION "n.n.n"
# We need to find >= sqlite version 3.3.9, for sqlite3_prepare_v2
sqlite_incdir = sqlite_libdir = None
sqlite_inc_paths = [ '/usr/include',
'/usr/include/sqlite',
'/usr/include/sqlite3',
'/usr/local/include',
'/usr/local/include/sqlite',
'/usr/local/include/sqlite3',
]
if CROSS_COMPILING:
sqlite_inc_paths = []
MIN_SQLITE_VERSION_NUMBER = (3, 7, 2)
MIN_SQLITE_VERSION = ".".join([str(x)
for x in MIN_SQLITE_VERSION_NUMBER])
# Scan the default include directories before the SQLite specific
# ones. This allows one to override the copy of sqlite on OSX,
# where /usr/include contains an old version of sqlite.
if MACOS:
sysroot = macosx_sdk_root()
for d_ in self.inc_dirs + sqlite_inc_paths:
d = d_
if MACOS and is_macosx_sdk_path(d):
d = os.path.join(sysroot, d[1:])
f = os.path.join(d, "sqlite3.h")
if os.path.exists(f):
if sqlite_setup_debug: print("sqlite: found %s"%f)
with open(f) as file:
incf = file.read()
m = re.search(
r'\s*.*#\s*.*define\s.*SQLITE_VERSION\W*"([\d\.]*)"', incf)
if m:
sqlite_version = m.group(1)
sqlite_version_tuple = tuple([int(x)
for x in sqlite_version.split(".")])
if sqlite_version_tuple >= MIN_SQLITE_VERSION_NUMBER:
# we win!
if sqlite_setup_debug:
print("%s/sqlite3.h: version %s"%(d, sqlite_version))
sqlite_incdir = d
break
else:
if sqlite_setup_debug:
print("%s: version %s is too old, need >= %s"%(d,
sqlite_version, MIN_SQLITE_VERSION))
elif sqlite_setup_debug:
print("sqlite: %s had no SQLITE_VERSION"%(f,))
if sqlite_incdir:
sqlite_dirs_to_check = [
os.path.join(sqlite_incdir, '..', 'lib64'),
os.path.join(sqlite_incdir, '..', 'lib'),
os.path.join(sqlite_incdir, '..', '..', 'lib64'),
os.path.join(sqlite_incdir, '..', '..', 'lib'),
]
sqlite_libfile = self.compiler.find_library_file(
sqlite_dirs_to_check + self.lib_dirs, 'sqlite3')
if sqlite_libfile:
sqlite_libdir = [os.path.abspath(os.path.dirname(sqlite_libfile))]
if sqlite_incdir and sqlite_libdir:
sqlite_srcs = ['_sqlite/cache.c',
'_sqlite/connection.c',
'_sqlite/cursor.c',
'_sqlite/microprotocols.c',
'_sqlite/module.c',
'_sqlite/prepare_protocol.c',
'_sqlite/row.c',
'_sqlite/statement.c',
'_sqlite/util.c', ]
sqlite_defines = []
if not MS_WINDOWS:
sqlite_defines.append(('MODULE_NAME', '"sqlite3"'))
else:
sqlite_defines.append(('MODULE_NAME', '\\"sqlite3\\"'))
# Enable support for loadable extensions in the sqlite3 module
# if --enable-loadable-sqlite-extensions configure option is used.
if '--enable-loadable-sqlite-extensions' not in sysconfig.get_config_var("CONFIG_ARGS"):
sqlite_defines.append(("SQLITE_OMIT_LOAD_EXTENSION", "1"))
if MACOS:
# In every directory on the search path search for a dynamic
# library and then a static library, instead of first looking
# for dynamic libraries on the entire path.
# This way a statically linked custom sqlite gets picked up
# before the dynamic library in /usr/lib.
sqlite_extra_link_args = ('-Wl,-search_paths_first',)
else:
sqlite_extra_link_args = ()
include_dirs = ["Modules/_sqlite"]
# Only include the directory where sqlite was found if it does
# not already exist in set include directories, otherwise you
# can end up with a bad search path order.
if sqlite_incdir not in self.compiler.include_dirs:
include_dirs.append(sqlite_incdir)
# avoid a runtime library path for a system library dir
if sqlite_libdir and sqlite_libdir[0] in self.lib_dirs:
sqlite_libdir = None
self.add(Extension('_sqlite3', sqlite_srcs,
define_macros=sqlite_defines,
include_dirs=include_dirs,
library_dirs=sqlite_libdir,
extra_link_args=sqlite_extra_link_args,
libraries=["sqlite3",]))
else:
self.missing.append('_sqlite3')
changed the title [-]Prebuilt Native lib - missing sqlite3[/-][+]Missing sqlite3 - cannot locate symbol "log" referenced by "/data/local/tmp/usr/lib/python3.9/lib-dynload/_sqlite3.cpython-39.so"[/+]on Oct 18, 2020
Activity
eakteam commentedon Oct 18, 2020
Any help ?
yan12125 commentedon Oct 18, 2020
The fix is most likely a patch for setup.py, but I haven't had time to write it :/
eakteam commentedon Oct 18, 2020
What change it needs exactly ?
eakteam commentedon Oct 18, 2020
@yan12125 Where is it located and please give some instructions on how to modify it by myself
eakteam commentedon Oct 18, 2020
In the setup.py this is all i found, and doesn't seems to be related to this issue :
ImportError: dlopen failed: cannot locate symbol "log" referenced by "/data/local/tmp/usr/lib/python3.9/lib-dynload/_sqlite3.cpython-39.so"This is the content of setup.py about Sqlite
[-]Prebuilt Native lib - missing sqlite3[/-][+]Missing sqlite3 - cannot locate symbol "log" referenced by "/data/local/tmp/usr/lib/python3.9/lib-dynload/_sqlite3.cpython-39.so"[/+]