已按要求创建secret.py后仍提示secrets模块无get_credentials属性报错
报错原因
触发AttributeError: module 'secrets' has no attribute 'get_credentials'的核心原因是模块导入错误:
- 你本地存储凭证的文件命名为
secret.py(单词无末尾s),但代码中写的是import secrets(多了末尾s),导入的根本不是自定义的凭证文件 secrets是Python 3.6版本后自带的标准库,功能是生成加密安全的随机值,本身不存在get_credentials()方法,自然会报属性不存在的错误- 注意:就算你把本地凭证文件改名为
secrets.py,Python导入模块时会优先加载标准库同名模块,依然读不到你自定义的函数,不要用和标准库重名的文件名。
修复方案
- 保持本地凭证文件名为
secret.py,修改main.py中的导入语句,修正拼写错误:
将原代码的
import secrets, sys
替换为
import secret, sys
- 确认
secret.py和main.py存放在同一个项目目录下,避免Python找不到本地自定义模块。 - (可选校验)修改后可以在main.py开头加一行测试代码,确认导入的是本地的凭证文件:
import secret # 打印导入模块的路径,输出为你项目目录下的secret.py路径即为正确 print(secret.__file__)
确认导入正确后,删掉测试代码正常运行脚本即可。
内容的提问来源于stack exchange,提问作者Nam Quốc
相关产品推荐
相关产品推荐

