【发布时间】:2018-03-10 20:26:57
【问题描述】:
我是 Python 的新用户,所以我不知道自己在做什么。请记住这一点:)
我正在使用带有 Sublime Text 3 的 Anaconda 作为我的 Python IDE。 据我了解,Anaconda 使用 jedi 来查找导入包的自动补全。
但是,在尝试数据集的示例脚本时:
db = dataset.connect('sqlite:///ebay.db')
table = db['searches']
table.insert [...]
^ problem happens there`
在点之后,我没有自动完成 insert(或任何其他功能)。 当我在 python 控制台中尝试它时,它工作正常。
我尝试调试它并将问题缩小到 jedi 或 dataset。 在 Python 控制台:
>>> from jedi import Script
>>> print(Script('import dataset;dataset.table.').completions())
返回:
[<Completion: and_>, <Completion: ClauseElement>, <Completion: Column>, <Completion: DatasetException>, <Completion: ensure_tuple>, <Completion: expression>, <Completion: false>, <Completion: func>, <Completion: Index>, <Completion: index_name>, <Completion: log>, <Completion: logging>, <Completion: normalize_column_name>, <Completion: normalize_table_name>, <Completion: NoSuchTableError>, <Completion: QUERY_STEP>, <Completion: ResultIter>, <Completion: select>, <Completion: SQLATable>, <Completion: Table>, <Completion: threading>, <Completion: Types>, <Completion: warnings>, <Completion: __doc__>, <Completion: __file__>, <Completion: __name__>, <Completion: __package__>]
注意那里没有Completion: insert。
如果我尝试列出 dataset. 的完成,它看起来像它的工作:
>>> from jedi import Script
>>> print(Script('import dataset;dataset.').completions())
返回:
[<Completion: connect>, <Completion: Database>, <Completion: database>, <Completion: os>, <Completion: row_type>, <Completion: Table>, <Completion: table>, <Completion: types>, <Completion: util>, <Completion: warnings>, <Completion: __all__>, <Completion: __doc__>, <Completion: __file__>, <Completion: __name__>, <Completion: __package__>]
如您所见,Completion: connect 就在那里,例如。
我错过了什么吗?我在做一些愚蠢的错误吗?对不起,如果这完全是微不足道的。
【问题讨论】:
-
您使用这些工具是否有特定原因?考虑 Pycharm、PyDev、Aptana 或开箱即用的工具并避免出现问题。
-
是的.. 原因是我真的用 SublimeText 做所有事情,如果我能保持这种方式会更好。不过我会看看你提到的工具,谢谢!
-
@JosepValls “考虑 Pycharm、PyDev、Aptana”。这完全是错误的。在完成方面,您列出的工具(Pycharm 除外)要糟糕得多。没有人在那里完成工作。与 thta 不同,Pycharm 是一个非常好的工具,但在完成方面也不是更好。他们可能更糟。他们做得更好的是:重构,他们有一个很好的调试器和 linting。
标签: python autocomplete dataset jedi