PyCharm:为什么 `audio` 成为首选?
PyCharm: Why does `audioop` get prefered?
如果我想导入 reverse()
,为什么 audioop
更受欢迎?
我的代码包含 from django.urls import reverse
已经在很多文件中。
为什么 PyCharm 不查看我的其他文件,然后将当前的第二个选项设为第一个?
我这辈子都没用过模块audioop
Why does audioop
get preferred, if I want to import reverse()
?
audioop
是内置模块,所以它的存根文件audioop.py存在于PyCharm的python_stubs
.
中
PyCharm 只是按字母顺序列出自动导入建议。
PyCharm 按类别列出自动导入建议,在每个建议中按字母顺序排列:
- 当前文件中导入的已知引用(更多信息请参见下面的部分)
- 第一方模块
- 内置模块←
audioop
属于这里
- 第三方模块←
django
属于这里
pip._vendor
个模块
My code contains from django.urls import reverse
already in many files.
Why does PyCharm not look my other files and then make the currently second option the first one?
PyCharm根本没有实现这样的推理机制。
PyCharm 确实优先考虑当前文件中导入的已知引用,但有一些注意事项(更多信息请参见下面的部分)。
解决方法
I have never used the module audioop
in my whole life.
您可以安全地删除文件,或者只更改文件扩展名(例如 audioop.txt)。
当您在 PyCharm 中重新打开项目时,它将重新生成。
当前文件中导入的已知引用
PyCharm 优先考虑当前文件中导入的已知引用,但有一些注意事项。
例如,如果您在该文件中有 from django.urls.base import get_script_prefix
,那么 PyCharm 会建议 reverse() from django.urls.base
(django.urls
公开),因为它知道 reverse
在 django.urls.base
.
警告:不建议导入引用。
例如,from django.urls import path
(如果您在 urls.py 工作)并不建议 reverse() from django.urls
,因为 reverse
是导入引用(即跳转到 django.urls.reverse
会直接把你带到 django.urls.base.reverse
,因为 django/urls/__init__.py
只是从 django.urls.base
导入了 reverse
)。
解决方法:为导入添加别名,然后将其分配给原始名称。
例如将django/urls/__init__.py
中的import由reverse
修改为reverse as _reverse
,然后定义变量reverse = _reverse
.
此解决方法的注意事项:PyCharm 提示这是一个 v
变量而不是 f
函数。
解决方法:包装函数。
def reverse(viewname, urlconf=None, args=None, kwargs=None, current_app=None):
return _reverse(viewname, urlconf=urlconf, args=args, kwargs=kwargs, current_app=current_app)
如果我想导入 reverse()
,为什么 audioop
更受欢迎?
我的代码包含 from django.urls import reverse
已经在很多文件中。
为什么 PyCharm 不查看我的其他文件,然后将当前的第二个选项设为第一个?
我这辈子都没用过模块audioop
Why does
audioop
get preferred, if I want to importreverse()
?
audioop
是内置模块,所以它的存根文件audioop.py存在于PyCharm的python_stubs
.
PyCharm 只是按字母顺序列出自动导入建议。
PyCharm 按类别列出自动导入建议,在每个建议中按字母顺序排列:
- 当前文件中导入的已知引用(更多信息请参见下面的部分)
- 第一方模块
- 内置模块←
audioop
属于这里 - 第三方模块←
django
属于这里 pip._vendor
个模块
My code contains
from django.urls import reverse
already in many files.Why does PyCharm not look my other files and then make the currently second option the first one?
PyCharm根本没有实现这样的推理机制。
PyCharm 确实优先考虑当前文件中导入的已知引用,但有一些注意事项(更多信息请参见下面的部分)。
解决方法
I have never used the module
audioop
in my whole life.
您可以安全地删除文件,或者只更改文件扩展名(例如 audioop.txt)。
当您在 PyCharm 中重新打开项目时,它将重新生成。
当前文件中导入的已知引用
PyCharm 优先考虑当前文件中导入的已知引用,但有一些注意事项。
例如,如果您在该文件中有 from django.urls.base import get_script_prefix
,那么 PyCharm 会建议 reverse() from django.urls.base
(django.urls
公开),因为它知道 reverse
在 django.urls.base
.
警告:不建议导入引用。
例如,from django.urls import path
(如果您在 urls.py 工作)并不建议 reverse() from django.urls
,因为 reverse
是导入引用(即跳转到 django.urls.reverse
会直接把你带到 django.urls.base.reverse
,因为 django/urls/__init__.py
只是从 django.urls.base
导入了 reverse
)。
解决方法:为导入添加别名,然后将其分配给原始名称。
例如将django/urls/__init__.py
中的import由reverse
修改为reverse as _reverse
,然后定义变量reverse = _reverse
.
此解决方法的注意事项:PyCharm 提示这是一个
v
变量而不是f
函数。解决方法:包装函数。
def reverse(viewname, urlconf=None, args=None, kwargs=None, current_app=None): return _reverse(viewname, urlconf=urlconf, args=args, kwargs=kwargs, current_app=current_app)