如何定义保存在一个exe文件中的绝对路径?

问题描述 投票:0回答:2

我正在用python编写用于Windows的软件,该软件应连接到数据库。我想使用py2exe创建一个可执行文件,这样就不必在正在运行该软件的计算机上安装python。问题是我希望用户在软件首次启动时就定义数据库的位置,但是我不知道如何存储此信息,因此用户不必每次都知道数据库在哪里。我不知道该如何处理。 (因为它只是一个.exe文件,所以无法更改该代码)。你会怎么做?

python windows py2exe
2个回答
0
投票

我可以想到一些解决方案:

  • 您可以假定数据库位于固定位置-不好的主意,可能会移动或更改名称,然后您的程序停止工作

  • 您可以假定数据库与.exe文件位于同一文件夹中,并指导用户在同一文件夹中运行它-更好,但仍不完美

    ]
  • 向用户询问数据库位置,并将路径保存在配置文件中。如果文件不存在或路径未指向文件,则用户应告诉程序数据库在哪里,否则,请从配置文件中读取它-我认为这是最佳选择。


0
投票
import os
default_db_path = os.environ['LOCALAPPDATA'] + '/stuff.db'
setting_path = os.environ['LOCALAPPDATA'] + '/.stuff_db_path.txt'
try:
    open(setting_path)
except:
    with open(setting_path, 'wt') as f:
        f.write(default_db_path)
db_path = open(setting_path).read().strip()

通过这种方式,用户可以通过文本文件进行配置,并且您第一次可以拥有明智的默认设置。

Edit:添加了Windows友好的配置路径,该路径应该在大多数私有和公司环境中都可以使用。有许多方法可以改善此示例,但是我的建议是您从simple stupid开始并从那里开始。

© www.soinside.com 2019 - 2024. All rights reserved.