Dans SQLite, il est nécessaire d'utiliser une librairie d'extension pour utiliser des fonctions mathématiques et des fonctions statistiques, mais il a été un peu pensé pour l'utiliser depuis Pyramid.
Téléchargez extension-functions.c à partir de l'URL suivante.
gcc -fPIC -shared /home/takaki/Desktop/extension-functions.c -o libsqlitefunctions.so
Si vous pouvez démarrer sqlite et effectuer les opérations suivantes, la bibliothèque d'extension est OK.
$ 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>
Apportez les modifications suivantes à partir du fichier de modèle normal.
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