如何让我的本地 python 应用程序忘记其 Azure 凭据以便我可以进行新的交互式登录?

How do I get my local python app to forget its Azure credentials so I can do a new interactive login?

我有两套或三套用于工作、工作管理员和个人的 Azure 凭据。今天早上,我在做一些本地开发时,在交互式登录时点击了错误的登录凭据。我的本地开发应用程序现在有一个身份 me@company.com,当我需要我的身份 实际上 我@admin.com。因为我点击了错误的身份,我的应用程序立即开始出现明显的授权错误。

我现在的实现非常天真,我依靠 Python Azure SDK 来了解何时需要登录,并在我这边没有任何显式代码的情况下执行该登录。到目前为止,这非常有效,能够进行交互式登录,同时在部署时使用 Azure 提供的凭据。

如何让我的本地开发应用程序忘记它拥有的身份并提示我执行新的交互式登录?

我尝试过的事情:

Python 垃圾收集器 提供对收集器找到但无法释放的无法访问的对象的访问。由于收集器补充了 Python 中已经使用的引用计数,如果您确定您的程序不会创建引用循环,则可以禁用收集器。参考 here

您可以使用 weak reference to an object is not enough to keep the object alive: when the only remaining references to a referent are weak references, garbage collection 免费销毁所指对象并将其内存重新用于其他用途。但是,在对象被销毁之前,弱引用可能 return 对象,即使没有对它的强引用也是如此。

使用弱引用请参考这里reference 1 & reference 2

找到了! AzureML SDK 似乎将身份验证凭据存储在 ~/.azureml/auth/.

删除 ~/.azureml 目录(它似乎没有任何其他内容)就可以了。