Intellij未解决Python内置模块(如sys)的引用问题。

4
我该如何让Intellij识别与解释器静态链接的内置函数,例如sys? 当我执行import sys时,我没有自动完成功能,因为在site-packages中没有相应的.py文件。为什么PyCharm可以工作,但IntelliJ不能?
import sys

def dump(module):
    if module in sys.builtin_module_names:
        print("<BUILTIN>")
    else:
        module = __import__(module)
        print(module.__file__)

dump("sys")

output:

<BUILTIN>

1个回答

5

我曾遇到类似问题(IntelliJ不能识别内置函数,如all),并找到了您的问题。

然而,我成功解决了它:您需要为您的IntelliJ项目配置Python SDK。这可以在“文件”>“项目结构”>“Facets”>“Python”下完成。如果“Python interpreter”下拉列表为空,您可以通过“...”按钮添加一个,打开“配置SDKs”对话框。

通常,这应列出您计算机上存在的Java SDKs,但您也可以使用“+”按钮添加Python解释器(或多个解释器),然后通过文件菜单导航到系统的Python解释器(或选择自定义安装的解释器)。

在对话框和首选项中点击“确定”后,内置函数将被识别,并且我确认sys函数也会自动完成。

我认为Pycharm默认支持此功能,因为至少在项目结构中声明一个Python解释器是必须的要求,而在Idea与Python作为插件时,则不是:只有声明Java SDK才是工作项目的唯一要求。


添加/配置Facet与在“文件”>“项目结构”>“项目”中设置Python SDK有何不同?我单独打开了一个文件(打算稍后将其保存为项目),发现“tuple”未被识别,而在刚才描述的位置设置SDK似乎完全可以正常工作。Facet选项卡到底是做什么用的? - Twisted Code
谢谢你,我在随机尝试和搜索中花了很长时间才偶然发现了这个正确的答案。 - Tom Barber

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接