如何使用我的 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 数据库?的主要内容,如果未能解决你的问题,请参考以下文章

python怎么打包整个项目

如何使用您的 conda 构建打包其他另一个构建

如何编译使用 sqlalchemy 的 pyqt 脚本?

使用 Fbs/PyInstaller 冻结我的应用程序导致在另一台电脑上启动时无法执行 pyi_rth_qt5plugins

Python PyInstaller 打包成 WinMac 应用程序(app / exe)

python selenium代码如何打包成.exe文件(Pyinstaller)