gpt4 book ai didi

python - 如何为 PYPI 包持久存储

转载 作者:行者123 更新时间:2023-12-03 14:23:21 25 4
gpt4 key购买 nike

我有一个名为 collectiondbf 的 pypi 包它使用用户输入的 API key 连接到 API。它用于在目录中下载文件,如下所示:

python -m collectiondbf [myargumentshere..]
我知道这应该是基本知识,但我真的被困在这个问题上:
如何以有意义的方式保存用户给我的 key ,以便他们不必每次都输入它们?
我想使用以下解决方案使用 config.json文件,但是如果我的包要移动目录,我怎么知道这个文件的位置?
这是我想如何使用它,但显然它不会工作,因为工作目录会改变
import json
if user_inputed_keys:
with open('config.json', 'w') as f:
json.dump({'api_key': api_key}, f)

最佳答案

大多数常见的操作系统都有一个应用程序目录的概念,它属于在系统上拥有帐户的每个用户。该目录允许所述用户创建和读取例如配置文件和设置。

所以,你需要做的就是列出你想要支持的所有发行版,找出他们喜欢把用户应用程序文件放在哪里,并有一个很大的 if..elif..else链打开相应的目录。

或使用 appdirs ,它已经做到了:

from pathlib import Path
import json
import appdirs

CONFIG_DIR = Path(appdirs.user_config_dir(appname='collectiondbf')) # magic
CONFIG_DIR.mkdir(parents=True, exist_ok=True)

config = CONFIG_DIR / 'config.json'
if not config.exists():
with config.open('w') as f:
json.dumps(get_key_from_user(), f)
with config.open('r') as f:
keys = json.load(f) # now 'keys' can safely be imported from this module

关于python - 如何为 PYPI 包持久存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60406272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com