VS Code 的自动完成功能对于已删除的名称和子模块无法正常工作。
如果导入
scipy
顶级包,VS code 不会建议子模块名称。在下面的屏幕截图中,stats
是一个子模块,它不在建议中。我查看了 scipy
的源 __init__.py
文件,发现子模块被放入 list
中并传递给 __dir__
。另外,建议的子模块scimath
仅用于中间处理,后来被删除,因此它不在命名空间中。
scipy
的相同自动补全功能在 Pycharm 和 Ipython 中运行良好。我想知道这是否是一个错误。
这是 VS Code 的 Python 扩展的一个已知问题。
一种解决方法是使用关键字为子模块指定不同的名称,如下所示:
import scipy.stats as st
Python 扩展团队已意识到该问题,并正在努力在未来版本中改进对具有别名的子模块的支持。