PyCharm 没有正确识别需求 - Python,Django

PyCharm Not Properly Recognizing Requirements - Python, Django

通常要求在 requirements.txt 中显示如下:

django-registration

但在 INSTALLED_APPS 中显示为 registration。所以当你导入时:

from registration.signals import user_registered

这是有效的,但 PyCharm 在 from registration... 中的 registration 一词下方显示一条红色波浪线表示 "Package 'registration' is not listed in project requirements"。

我该如何补救?

更新

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

from googlevoice import Voice

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

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

中的错误

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

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

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

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

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

我可以确认这一点(在 IntelliJ IDEA 中)。此外,值得仔细检查是否在 Settings -> Tools -> Python Integrated Tools -> Package requirements file

中指定了正确的需求文件

可以在终端中使用以下命令解决此问题(使用 linux,不确定这是否适用于 windows,但我看不出有什么不应该的,我windows.)

没试过

如果您还没有创建 requirements.txt 文件

touch requirements.txt

这应该可以解决问题

pip freeze > requirements.txt
pip install flask

为了更好地理解,我建议阅读这篇文章

https://boscacci.medium.com/why-and-how-to-make-a-requirements-txt-f329c685181e