In SQLite ist es erforderlich, eine Erweiterungsbibliothek zu verwenden, um mathematische Funktionen und statistische Funktionen zu verwenden, aber es wurde ein wenig entwickelt, um sie von Pyramid zu verwenden.
Laden Sie extension-functions.c von der folgenden URL herunter.
gcc -fPIC -shared /home/takaki/Desktop/extension-functions.c -o libsqlitefunctions.so
Wenn Sie sqlite starten und die folgenden Schritte ausführen können, ist die Erweiterungsbibliothek in Ordnung.
$ sqlite3
SQLite version 3.13.0 2016-05-18 10:57:30
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> select load_extension('./libsqlitefunctions.so');
sqlite> select sin(3.14/2);
0.999999682931835
sqlite>
Nehmen Sie die folgenden Änderungen gegenüber der normalen Vorlagendatei vor.
model/__init__.py
def get_session_factory(engine):
@event.listens_for(engine, "connect")
def connect(dbapi_connection, connection_rec):
dbapi_connection.enable_load_extension(True)
dbapi_connection.execute("SELECT load_extension('{0}');".format(FULL_PATH_OF_LIB))
factory = sessionmaker()
factory.configure(bind=engine)
return factory
Recommended Posts