jediを使用するatomのオートコンプリート-pythonを使用していますmultiprocessing
モジュールの誤った提案があるとわかりました。python3
です。次に例を示します。python3のマルチプロセッシングモジュールのjediの完了が正しくありません
>>> import jedi
>>> source = '''
... import multiprocessing as mp
... mp.Pro'''
>>> script = jedi.Script(source, 3, len('mp.Pro'), 'example.py')
>>> script.completions()
[<Completion: process>]
モジュールが実際にprocess
パッケージを持っているだけでなく、それはモジュールスコープの内部Process
クラスを持っています
multiprocessing
モジュールを比較
>>> import multiprocessing as mp
>>> [n for n in mp.__all__ if n.endswith('rocess')]
['Process', 'current_process']
。デフォルトのコンテキストの名前空間の現代版の輸入名前空間:残念ながら
globals().update((name, getattr(context._default_context, name))
for name in context._default_context.__all__)
__all__ = context._default_context.__all__
、私はこの問題を解決するか、それを回避する方法任意のアイデアを持っていません。何か提案はありますか?
あなたの答えをありがとう、私はあなたがしばらくそれを得ることを願っています。また、PyCharmのようなIDEでオートコンプリートがどのように機能するのか知っていますか? – frist
同様に動作します。しかし、さらに、彼らは "骨格"ファイルをたくさん持っています(私は彼らがそれらを呼んでいると思います)。マルチプロセッシングの型推論は、おそらくこのようなスケルトンファイルにリダイレクトされ、より良い自動補完を可能にします(globals()はありません)。 これとは対照的に、JediはほとんどPythonコードを完全に理解しようとしました。プラグインおよび/またはスケルトンシステムが必要なところに来てください。 –