21

是否可以导入六个模块以在 PyCharm 中工作?我意识到该模块在使用导入时会混淆 PyCharm,但我希望有某种解决方法。

例如,我希望以下内容在 PyCharm 或 IntelliJ 中正常工作::

from six.moves import BaseHTTPServer
4

1 回答 1

3

导入是动态的,因此 pycharm 无法对代码进行任何静态分析以确定类型信息。

Pycharm 通过使用静态类型定义文件(设置 -> 语言和框架 -> Javascript -> 库)为 javascript 等语言解决了这个问题。

这是 python 的等价物: https ://www.jetbrains.com/help/pycharm/2016.2/using-python-skeletons.html - 一组具有静态导出的并行 python 文件,允许进行静态分析。

目前,骨架定义似乎真的是概念证明,因为它们非常稀疏(没有six,并且虽然django存在模块,但它几乎是空的——没有django.utils.six.moves可以复制的内容)。您可以手动添加所有six.moves导出,但这将是一项艰巨的工作。

如果您确实想尝试修改骨架文件,请在 OSX 上:

cd ~/Library/Preferences/PyCharm2016.2 git clone https://github.com/JetBrains/python-skeletons.git 并修改其中的文件(尽管我实际上从未能够让它检测到我的更改)

于 2016-08-02T12:23:26.333 回答