0

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__

残念ながら、この問題を解決する方法や回避策はありません。何か提案はありますか?

4

1 に答える 1