【问题标题】:PyCharm Not Properly Recognizing Requirements - Python, DjangoPyCharm 无法正确识别需求 - Python、Django
【发布时间】:2015-05-15 12:51:35
【问题描述】:

需求经常出现在requirements.txt 中,如下所示:

django-registration

但在INSTALLED_APPS 中,它显示为registration。所以当你像这样导入时:

from registration.signals import user_registered

这是有效的,但 PyCharm 在 from registration... 中的 registration 字下显示一条红色波浪线,表示“项目要求中未列出包'注册'”。

我该如何补救?

更新

我能够找到一种方法来消除警告,但这不是一个好的解决方案。如果您只是将软件包名称添加到 requirements.txt 文件中,警告就会消失,但如果您要使用 pip 进行安装,则该要求无效。例如,我也在使用pygooglevoice,这就是它在requirements.txt 中的写法,但是当它在代码中导入时,你会写:

from googlevoice import Voice

这看起来很奇怪,因为我在许多项目中都使用 PyCharm,而我只是在我最近正在进行的一个项目中注意到这一点......

【问题讨论】:

  • 然后直接点击ignore this requirement
  • 感谢您的评论。我想我知道你在说什么......但是如果你的代码中有一个不在你的需求文件中的需求,你正在考虑的消息和选项就会出现。我的情况是,与INSTALLED_APPS 配置相比,需求文件中的需求名称有所不同。 PyCharm 感到困惑,因为它认为该需求应该被称为 django-registration,但它在 import 语句中为 registration

标签: python django pycharm


【解决方案1】:

再次看到这种现象后,我又进行了一些挖掘。将某些文件夹设置为源根目录并重新启动 PyCharm 后,这些参考警告消失了。我认为这是 PyCharm 中的一个错误。

【讨论】:

  • 这可能在新版本中得到解决:jetbrains.com/pycharm/download
  • 我最近在 2015 年 9 月 11 日的最新 PyCharm 版本 (4.5.4) 中遇到了同样的问题。将我的 django 根目录(不是我的项目的根目录)设置为 Source 文件夹后,它似乎解决了这个问题。
  • 我在 PyCharm 2016.1 中遇到了与 django-watson 相同的问题。
  • 我已经正确设置了我的源根文件夹,我在 PyCharm 的 2017.2.3 版本上遇到了这个问题。重新启动 IDE 即可解决。
  • 另请注意,使用多个内容根可能会混淆插件,因为 PyCharm 对内容根使用字母顺序。我不得不将我的库的项目重命名为 zz-libname 以解决我的问题。
【解决方案2】:

这似乎是一个悬而未决的问题

https://youtrack.jetbrains.com/issue/PY-11963

【讨论】:

【解决方案3】:

JetBrains 声称此问题已在 2017.2 版中得到修复:

https://youtrack.jetbrains.com/issue/PY-11963#comment=27-2248728

我可以确认这一点(在 IntelliJ IDEA 中)。此外,值得仔细检查 Settings -> Tools -> Python Integrated Tools -> Package requirements file 中是否指定了正确的需求文件

【讨论】:

  • 这在 2020 年仍然是一个问题。
【解决方案4】:

PyCharm 应该能够解决这个问题,但事实并非如此。现在,我只需将 #noinspection PyPackageRequirements 添加到每个导入中,并带有此警告以抑制它。我宁愿不这样做,但它现在有效。

【讨论】:

    猜你喜欢
    • 2015-01-06
    • 1970-01-01
    • 2015-09-18
    • 2012-07-26
    • 1970-01-01
    • 2021-08-22
    • 2021-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多