python 访问sqlite数据库路径问题

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 19:23   2807   0

问题

想通过同一个py文件py_MySQL内的方法调用连接 sqlite3数据库,在路径上的设置可以直接设置在当前py_MySQL目录下。但实际上,这样会报错,数据库内没有任何东西,因为sqlite3数据库在连接的时候如果没有这个数据库会自动创建一个,但是里面的表格这个是需要自己创建、插入数据的。

错误信息

没有这个表格

错误原因

相对路径其实指的是相对于最上层调用模块的路径

def dict_query_table_sqlite(sql, args=[], executemany=False):
    # 连接数据库
    conn = sqlite3.connect('screw_database.db')
    cursor = conn.cursor()
    # 如果使用executemany()执行select语句,程序会抛出ProgrammingError: executemany() can only execute DML statements。
    cursor.executemany(sql, args)
    cursor.execute(sql, args)
    conn.commit()
    conn.close()

    return data

IDE运行脚本的时候首先会将脚本存在的路径作为运行路径, 而第二种在终端运行的时候,会把当前所在的路径作为运行路径

解决方法

在最外层写一个main.py,通过这个文件导入所有模块,并将数据库文件放在同一目录下

参考

关于python路径的问题思考

python中在发生函数调用时出现的相对路径更改问题

Python模块调用时,相对路径问题

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP