我想使用jedi从python脚本获取外部模块(pyspark)的代码完成。但是在某些情况下,我使用jedi.Script获得的代码段补全与制表符补全不同。
如果我将模块路径放在PYTHONPATH中,并在Python交互式shell中尝试使用Jedi进行制表符补全,则补全效果很好。例如
import pyspark
pyspark.SparkConf.<tab>
给我完成列表([...] ... setMaster ... setSparkHome [...]) 但是,如果我尝试从同一外壳使用jedi API
code = 'import pyspark\npyspark.SparkConf.'
script = jedi.Script(code, 2, len('pyspark.SparkConf.'), None)
completions = script.completions()
给了我一个空名单。 (完成'import pyspark\npyspark.SparkC'
工作正常)
这里可能是什么问题?