擅长:python、mysql、java
<p>这不是一个好的答案,但是它提供了一个在python中使用扩展的方法。在</p>
<p>将sql命令输出到文件,然后使用子进程将文件直接运行到命令行中,如下所示:</p>
<pre><code>import subprocess
import uuid
import os
db_file = "trial02.db"
sqlite_functions_file = "libsqlitefunctions.dll"
sql_file = uuid.uuid4() + ".sql"
with open(sql_file, 'w') as fsql:
fsql.write('/* auto script */\n\n')
#load extension
sql = "SELECT load_extension('" + sqlite_functions_file + "');"
fsql.write(sql + '\n')
#sql scripts
sql = "insert into t(c) values (log(2));"
fsql.write(sql + '\n')
args = [
'sqlite3'
, db_file
, '< ', sql_file
]
print(' '.join(args))
out1 = subprocess.run(' '.join(args), shell=True)
os.remove(sql_file)
</code></pre>