需求经常出现在
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,而且我只是在最近正在从事的一个项目中注意到这一点......
再次看到这个现象后,我又做了一些挖掘。将某些文件夹设置为源根并重新启动 PyCharm 后,这些参考警告消失了。我认为这是 PyCharm 中的一个错误。
JetBrains 声称该问题已在 2017.2 版本中修复:
https://youtrack.jetbrains.com/issue/PY-11963#comment=27-2248728
我可以确认这一点(在 IntelliJ IDEA 中)。另外,值得仔细检查
Settings -> Tools -> Python Integrated Tools -> Package requirements file
中是否指定了正确的需求文件
这似乎是一个悬而未决的问题
PyCharm 应该能够解决这个问题,但事实并非如此。现在,我只需向每个导入添加 # noinspection PyPackageRequirements 并使用此警告来抑制它。我宁愿不这样做,但它现在有效。
这个问题可以在终端中使用以下命令来解决(使用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
我也遇到同样的问题。结果发现虚拟环境文件夹被排除在项目文件之外。从排除文件列表中删除它有帮助。
设置 -> 项目 -> 项目结构