【问题标题】:Sublime Text 2 autocompletion for python用于 python 的 Sublime Text 2 自动完成
【发布时间】:2015-05-29 13:15:46
【问题描述】:
我已经安装了 SublimeCodeIntel 和 SublimeJEDI,但是我没有从导入的库中获得自动完成功能。
我需要做什么才能从导入的库中获取可用的方法,比如 Sublime Text 2 中的 MySQLdb?在 Pycharm 中,如果我导入一个库,我会从该库中获取所有可用的方法,就像来自 Google 搜索的建议一样。但在 Sublime Text 中并非如此。是否需要安装其他插件才能获得此功能?
【问题讨论】:
标签:
python
autocomplete
sublimetext2
【解决方案1】:
我最好的建议是升级到Sublime Text 3 并使用Anaconda 完成代码。 ST3 比 ST2 具有许多新功能,并且在幕后,API 有许多更改,使得编写和支持插件非常容易 - 不幸的是,有些更改是向后不兼容的。 ST2 内部包含 Python 2.6,而 ST3 包含 Python 3.3,因此开发人员基本上要么需要支持两个独立的代码库,要么有很多丑陋的 if ST2: do this; else: do that 类型的构造。这样做的结果是许多插件作者选择只支持 ST3,这意味着 ST3 可用的包比 ST2 多得多,其中包括 Anaconda。 ST3 的“beta”版本(当前构建 3065)与 ST2 一样稳定。如果你是registered user(你应该是!),你可以访问最前沿的development builds(几小时前刚刚发布了3081版本),它有很多新功能,但有时更少稳定的。一年多来,我一直在专门使用 ST3(除非我需要在 ST2 上测试一些东西),而且完全没有任何问题。
就Anaconda 而言(它与 Anaconda Python 发行版没有任何关系),我就是喜欢它。我曾经使用SublimeCodeIntel,但配置起来有点困难,索引文件需要很长时间,而且经常无法正常工作,如果有的话。 Anaconda 使用静态分析来确定变量的类型,并通过自动完成提供适当的方法和属性。您需要做的就是指定 Python 在您的机器上的位置,它会自动配置自己以使用该版本的标准库以及您可能已安装的任何 3rd 方模块。它可以通过.sublime-project 文件独立配置,因此您可以根据您正在处理的项目使用不同的解释器版本 - 它也适用于 virtualenvs。最后,如果您愿意,它通过 PEP8、PyLint 和/或 PEP257 提供内置的 linting(我只是将其关闭,因为我认为这很烦人,但它对新手编码人员非常有帮助)。除了它可以正常工作之外,Anaconda 的最佳特性是它完全是异步的,因此它不会减慢 ST3 的速度或在出现不可恢复的错误时使其崩溃。我从来没有因为我喜欢它的另一个原因而让我崩溃。
最后,以防万一您想知道,我与 Anaconda 项目根本没有任何联系,除了删除了一个字符的单个 pull request - 我只是一个非常满意的用户。