我正在使用 PyDrive 将文件从我使用 Pyinstaller 打包的桌面 Python 应用程序上传到 GoogleDrive。我想尽可能地隐藏 client_secrets.json,所以我将它嵌入到 Pyinstaller .exe 文件中,使用以下解决方案:Bundling Data files with PyInstaller 2.1 and MEIPASS error --onefile
但是,PyDrive 没有从 Pyinstaller 放置数据文件的临时目录中找到 client_secrets 文件。
如何让 PyDrive 从另一个目录(尤其是 AppData)读取 json 文件?我正在考虑将文件从临时目录移动到工作目录,然后再进行身份验证和删除,但有些用户没有管理员访问权限,无法修改程序文件(安装应用程序的位置)
我看到我可以使用 settings.yaml 文件,我可以引用另一个目录,但是 pyinstaller 似乎使用 sys._MEIPASS 变量将嵌入式 client_secrets.json 放在临时文件夹中,所以我不知道它在哪里会的。
我必须将有值(value)的东西直接传递给 GoogleAuth(),有没有办法做到这一点?
请您参考如下方法:
更简单的解决方案:
from pydrive.auth import GoogleAuth
GoogleAuth.DEFAULT_SETTINGS['client_config_file'] = path_to_secrets_file
