jedi を使用する atom の autocomplete-python を使用しているときに、multiprocessing
モジュールの提案が間違っていることがわかりましたpython3
。次に例を示します。
>>> 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
、モジュール スコープ内にクラスもあります。
>>> import multiprocessing as mp
>>> [n for n in mp.__all__ if n.endswith('rocess')]
['Process', 'current_process']
python2 のモジュールと python3 のmultiprocessing
モジュールを比較すると、わずかに異なることがわかりました。最新バージョンは、デフォルト コンテキストの名前空間の名前空間をインポートします。
globals().update((name, getattr(context._default_context, name))
for name in context._default_context.__all__)
__all__ = context._default_context.__all__
残念ながら、この問題を解決する方法や回避策はありません。何か提案はありますか?