绝地不使用boto3库

时间:2015-07-24 13:39:30

标签: python-jedi

我正在努力让jedi正常使用适用于Amazon Web Services的boto3库(https://github.com/boto/boto3)。

用一个例子解释可能最容易:

$ python
Python 3.4.3 (default, Jul 16 2015, 13:03:44) 
[GCC 5.1.1 20150618 (Red Hat 5.1.1-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import boto3
>>> sqs = boto3.resource("sqs", region_name="us-west-2")
>>> sqs.<TAB><TAB>
sqs.Message(            sqs.__dict__            sqs.__format__(
sqs.__hash__            sqs.__module__          sqs.__reduce_ex__(
sqs.__str__(            sqs.get_queue_by_name(
...
>>> type(sqs)
<class 'boto3.resources.factory.sqs'>
>>> 

在交互式解释器上,我可以完成课程的完成。输入jedi:

>>> import jedi
>>> jedi.__version__
'0.9.0'
>>> jedi.Script('import boto3; sqs = boto3.resou').completions()
[<Completion: resource>, <Completion: resources>]
>>>

还在这里工作!但是......然后......

>>> code = 'import boto3; sqs = boto3.resource("sqs", region_name="us-west-2"); sqs.'
>>> jedi.Script(code).completions()
[]
>>> 

我不确定这是我的错,是图书馆的还是绝地的。

编辑:似乎PyCharm遇到了同样的问题:PyCharm intellisense for boto3

1 个答案:

答案 0 :(得分:1)

由詹姆斯提供(来自PyCharm问题https://stackoverflow.com/a/31681988/3236648):

  

这种情况正在发生,因为boto3客户端上的所有方法都是如此   资源对象是在运行时基于JSON文件生成的   描述服务支持的操作。 Pycharm必须这样做   了解此过程的具体知识,以便自动完成   方法名称。