为了账号安全,请及时绑定邮箱和手机立即绑定

如何为 PYPI 包提供持久存储

如何为 PYPI 包提供持久存储

慕后森 2022-08-11 16:59:34
我有一个名为collectiondbf的pypi包,它连接到用户输入API密钥的API。它在目录中用于下载文件,如下所示:python -m collectiondbf [myargumentshere..]我知道这应该是基本知识,但我真的被困在这个问题上:如何以有意义的方式保存用户给我的密钥,这样他们就不必每次都输入它们?我想通过文件使用以下解决方案,但是如果我的包将移动目录,我如何知道此文件的位置?config.json这是我想如何使用它,但显然它不会工作,因为工作目录会改变import jsonif user_inputed_keys:     with open('config.json', 'w') as f:         json.dump({'api_key': api_key}, f)
查看完整描述

1 回答

?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

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


因此,您需要做的就是列出您想要支持的所有发行版,找出他们喜欢放置用户应用程序文件的位置,并有一个大的旧链来打开相应的目录。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


查看完整回答
反对 回复 2022-08-11
  • 1 回答
  • 0 关注
  • 84 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信