如何使用我的 Python3 fbs 包打包 Sqlite3 数据库?
Posted
技术标签:
【中文标题】如何使用我的 Python3 fbs 包打包 Sqlite3 数据库?【英文标题】:How do I package an Sqlite3 database with my Python3 fbs package? 【发布时间】:2019-10-01 06:20:05 【问题描述】:我正在使用 FBS 构建 Python 应用程序,但其中一部分依赖于 SQLite3 数据库。如果没有找到这个数据库,我有代码来创建这个数据库,使用 try-catch 块。
当我编译后尝试运行它时,它不仅找不到预先存在的SQLite3文件,而且也不会创建它。它不显示任何错误消息。
如果文件不存在,我尝试使用此代码创建文件:
try:
self.connection = sqlite3.connect(path)
self.cursor = self.connection.cursor()
except:
if not os.path.exists(path):
# Try and make the .config directory
try:
os.makedirs(".config")
except OSError as e:
if e.errno != errno.EEXIST:
raise
# Create the datastore, and close it
f = open(path, "w+")
f.close()
# And try connect to database again
return self.__connect(path)
else:
print(f"No database exists, and could not create one.\nPlease create file in app directory called: path\nThen restart application.")
raise
代码可以在 dev 中找到,但是一旦我将其编译到 Mac 应用程序中,它就会拒绝查找或创建数据库。
【问题讨论】:
【参考方案1】:已修复。如果有人有类似的问题,请使用内置的appctxt.get_resource(file_path)
方法。
【讨论】:
以上是关于如何使用我的 Python3 fbs 包打包 Sqlite3 数据库?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Fbs/PyInstaller 冻结我的应用程序导致在另一台电脑上启动时无法执行 pyi_rth_qt5plugins