pydoc.locate
コードのブロックまたは基本的な対話型シェルから呼び出された場合、エラーは発生しません。locate
存在しないモジュールが引数として指定された場合、pycharm 内から IPython コンソールを起動したときにのみエラーがスローされます。
Python コード:None
出力として印刷
import pydoc
def test_pydoc_locate():
print pydoc.locate('nonexistent.module.name')
if __name__ == "__main__":
test_pydoc_locate()
pycharm から IPython を実行する
from pydoc import locate
imported_module = locate('nonexistent.module.name')
Traceback (most recent call last):
File "/home/testuser/anaconda/lib/python2.7/site-packages/IPython/core/interactiveshell.py", line 3035, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-3-756f8a48c1ad>", line 1, in <module>
imported_module = locate('nonexistent.module.name')
File "/home/testuser/anaconda/lib/python2.7/pydoc.py", line 1517, in locate
nextmodule = safeimport(join(parts[:n+1], '.'), forceload)
File "/home/testuser/anaconda/lib/python2.7/pydoc.py", line 342, in safeimport
raise ErrorDuringImport(path, sys.exc_info())
ErrorDuringImport: problem in nonexistent - <type 'exceptions.ImportError'>: No module named nonexistent
ターミナルからの Python の実行
>>> from pydoc import locate
>>> imported_module = locate('nonexistent.module.name')
>>> print imported_module
None
locate
インポートエラーがあることを認識できるシステム変数としてpycharm IDEが設定するものはありますか?
誰かがこの動作をテストして説明できれば幸いです。
ありがとう!