在tkinter应用程序中如何以及在哪里最好存储程序和用户设置以及用户生成的数据?



假设您已经完成了使用tkinter生成gui应用程序的过程。该项目存储在github或在线目录中,用户可以下载该应用程序。我该如何处理一般的"客房管理"?部署应用程序?我想的是"放手"。可用性,就像用户下载火狐这样的程序,它只会创建所有必需的文件、文件夹和桌面快捷方式。

  1. 如何处理依赖项的安装?例如,一个脚本可以检查已安装的包,甚至在安装包之前自动创建一个虚拟环境。如何设置,以便在初始安装后不需要检查?
  2. 程序的通用配置设置存储在哪里?如何在启动时检查它们?
  3. 在哪里存储特定于用户的配置设置?如何在启动时检查它们?
  4. 假设程序将用户生成的数据存储在数据库中,最方便的是sqlite数据库。把它放在哪里最合适呢?我想我可以在我的程序中创建一个完全独立的部分来切换、创建、删除和备份数据库文件。

这些注意事项是单独的编程学科吗?如果是,它被称为什么?我可以从哪里了解它?

如果你的答案能考虑到Windows/Mac/GNU-Linux的细微差别,我将非常感激。

存储

您可以轻松地在任何平台上创建一个隐藏目录,如下所示

你可以存储所有的程序信息,settings.ini, sqlite.db等等。一般的东西也可以存储在这里。

<标题>Windows h1> 于Windows,我建议使用APPDATA/Roaming,因为,嗯,因为名字😊.

您可以很容易地使用Path来获取路径名,并且可以很容易地像这样实现它:

from pathlib import Path
import os
change_dir_to = os.chdir(f'{Path.home()}/AppData/Roaming')
try:
os.mkdir("Your App Name")
except:
pass
changed_dir_to = os.chdir("Your App Name")

你可以很容易地在你的应用程序中使用它。显然有更好的方法来实现它,但这是我能想到的最简单的方法。关于windows中这类实现的一个很好的参考。

<标题>

我对linux没有太多的经验,但是上面提到的方法应该可以工作。只需做一些小改动,您可以尝试在HOME路径中创建一个隐藏目录,如下所示

from pathlib import Path
import os
change_dir_to = os.chdir(Path.home())
try:
os.mkdir(".YourAppName")
except:
pass
changed_dir_to = os.chdir(".YourAppName")
<标题>MacOS h1> 对macos没有太多经验,但它应该像unix一样。这应该可以工作,非常类似于linux
from pathlib import Path
import os
change_dir_to = os.chdir(Path.home())
try:
os.mkdir(".YourAppName")
except:
pass
changed_dir_to = os.chdir(".YourAppName")

Check Modules on Startup

我不建议这样做,因为它会降低应用程序的速度,但如果你愿意,你可以把它实现为一个不同的线程

没有线程

import subprocess
import pkg_resources
required = {'youtube-dl'}
installed = {pkg.key for pkg in pkg_resources.working_set}
missing = required - installed
if missing:
python = sys.executable
subprocess.check_call([python, '-m', 'pip', 'install', *missing], stdout=subprocess.DEVNULL)
else:
pass

与线程

查看文档,如果你想问我,答案已经很长了。

<标题>

配置至于你问的类似Fireofx的配置,你应该查看NSIS并学习脚本语言来创建像setup.exe这样的可执行文件。或者,你可以将你的组件编译成一个zip文件,并使setup.exe从内置编译器安装在特定位置。

我希望这回答了你的问题。如果你对tkinter和python感兴趣,请查看我的项目NoobNote。我实现了一些你想要的特性

NoobScience

相关内容

  • 没有找到相关文章

最新更新