Python 3.6下Peewee未生成SQLite数据库文件的问题求助
Peewee未生成SQLite数据库文件的解决思路
嘿,我来帮你排查这个问题!看了你的代码片段,有几个关键问题和排查方向:
修复入口代码的拼写错误
你写的if __name__ == 'main':是错误的,Python的入口判断需要双下划线,正确写法是if __name__ == '__main__':。这个错误会导致你后面的数据库初始化代码完全不会执行,这大概率是文件没生成的核心原因。确保执行了表创建操作
从你代码里的db.c...来看,应该是没写完创建表的逻辑。你需要在入口代码块里明确执行数据库连接和表创建的操作,示例代码如下:if __name__ == '__main__': db.connect() # 建立数据库连接 db.create_tables([Student], safe=True) # 创建Student表,safe=True避免重复创建报错 db.close() # 关闭连接确认数据库文件的生成路径
SQLite默认会在你运行脚本的工作目录生成文件,而不是脚本本身所在的目录。你可以添加代码打印当前工作目录确认:import os print("当前工作目录:", os.getcwd())如果想强制在脚本所在目录生成文件,可以使用绝对路径初始化数据库:
import os script_dir = os.path.dirname(os.path.abspath(__file__)) db = pw.SqliteDatabase(os.path.join(script_dir, 'students.db'))检查目录写入权限
最后确认一下脚本运行的用户对目标目录有写入权限:- Linux/macOS可以用
ls -l命令查看目录权限 - Windows可以右键目录,在「属性-安全」里检查权限设置
- Linux/macOS可以用
内容的提问来源于stack exchange,提问作者TmSmth
相关产品推荐
相关产品推荐

