Django 和 Google Cloud SDK 之间的 argparse 库冲突 - 如何解决



我正在尝试在 PyCharm 中运行我的 Django 应用程序并收到以下错误:

TypeError: __init__() got an unexpected keyword argument 'allow_abbrev'

(仅当我从 PyCharm 中的"运行"菜单而不是从终端运行它时,才会发生这种情况)。

错误来自django.core.management.base.py.其中的CommandParser类继承自ArgumentParser,但解释器将标准from argparse import ArgumentParser(确实具有关键字参数allow_abbrev)与Google云SDK中的ArgumentParser混为一谈,后者没有参数allow_abbrev

解释器引用的 Google Cloud SDKArgumentParser甚至不在我的项目目录中。

我相信这只是在我升级Google Cloud SDK工具时才开始的。

我正在使用最新版本的Python运行一个虚拟环境,但我对它如何接受Google的ArgumentParser而不是Django所期望的感到困惑。

我真的不知道如何重现这个,但它是由以下引起的某种 PyCharm-Django-Google 问题:

  • 在 PyCharm 中设置运行配置,以使用 Python 3 venv 解释器运行"python manage.py runserver">
  • 安装最新的 Google Cloud SDK 工具

很可能在 PyCharm 运行配置中有些奇怪,因为正如我所说,它从终端运行良好。

最终我删除了 PyCharm 中的.idea文件夹并重新打开了该项目。PyCharm重新创建了文件夹,应用程序最终运行没有问题。所以看起来这是一个 PyCharm 配置问题,但表面上我看不到任何明显的东西。

最新更新