我正在开发一个Python包来与API通信。为了不对用户名和密码进行硬编码,我想阅读来自“#conf;”中的JSON文件的凭据。目录。因此,如果没有给出用户名和密码,它会尝试从文件中加载凭据:
def __init__(self, user=None, pswd=None):
""" Illustrate method-level docstring."""
if pswd is None:
try:
with open('conf/credentials.json') as data_file:
data = json.load(data_file)
user = data['user']
pswd = data['password']
print('You will log in with user', user)
except IOError:
print("Could not read file: credentials.json. Please Instantiate object with your username and password")
此解决方案在同一目录中执行代码时工作正常,但一旦安装了软件包,系统就找不到该文件:
Could not read file: credentials.json. Please Instantiate object with
your username and password
我该如何克服这个问题?是否可以参考安装路径?我不想加密密码,我只想将凭据放在单独的文件中,并将文件添加到 .gitignore 文件中,以防止共享此信息。
答案 0 :(得分:0)
您可以尝试使用存储文件名(带有绝对或相对路径)的“ 文件”,并以此为基础构建路径。
您还可以将机密数据存储在其他目录(代码库外部)中,例如〜/。最好将此文件名作为环境变量传递(请参见os.environ),以便用户可以指向正确的文件。