Python/Pycharm中Ctrl-Space无法弹出代码补全

4 投票
4 回答
11567 浏览
提问于 2025-04-17 14:13

我有一个文件。为什么当我在“r.”后面按 Ctrl-Space 时,代码补全没有反应呢?它显示“没有建议”在一个红色框里。

(这个程序现在能正常运行,输出结果是:200)

__author__ = 'hape'

import urllib.request
import urllib.response

print("Starting")
r = urllib.request.urlopen("http://www.python.org")

r.  <------------ No code completion, why not?!

print (r.getcode())

r. 后面,代码补全为什么不弹出来呢?

4 个回答

1

检查一下你的开发环境(IDE)是否处于省电模式。如果是的话,那么代码补全功能和其他后台进程都不会正常工作。

在IDE底部的状态栏里会显示相关信息。

3

JetBrains的回应:

@CrazyCoder说得对。问题在于我们无法推断出“urllib.request.urlopen()”这个函数的正确返回类型,因为它的实现使用了一些动态的技巧,我们无法静态处理,具体来说:

通常,我们会通过在python-skeletons中使用外部注释来处理这样的复杂情况,但目前还没有为“urllib.request”模块提供类型提示。此外,在即将发布的PyCharm版本中,我们计划转向typeshed项目中收集的注释。这个项目发展得更活跃,已经包含了一些关于“urllib”的注释。要利用这些注释,你只需要把带有注释的“urllib”包放在你的解释器路径中的某个地方,这样PyCharm就能找到相应的.pyi文件。

来自JB的截图

3

你有没有查看过Pycharm的编辑器代码补全设置页面?

http://www.jetbrains.com/pycharm/webhelp/editor-code-completion.html

你可以试试开启智能类型代码补全功能吗?

http://www.jetbrains.com/pycharm/webhelp/smart-type-code-completion-completing-code-based-on-type-information.html

撰写回答