main.py
スクリプトをPythonパッケージに編成されたモデルを実行するプロジェクトに持っています。IndexError:cProflieを実行しようとするとインデックスが範囲外になる
project/
model/
data/
...
__init__.py
...
tests/
...
main.py
integrator.py
utils.py
私が直接main.pyを実行すると、すなわちpython main.py
それが正常に動作します:プロジェクト構造は次のようになります。しかし、私が使用してmain.pyプロファイリングしようとしています:
python -m cProfile -o main.py
と、次のエラーを取得:
Traceback (most recent call last):
File "C:\Users\pbreach\Anaconda3\lib\runpy.py", line 184, in _run_module_as_main
"__main__", mod_spec)
File "C:\Users\pbreach\Anaconda3\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "C:\Users\pbreach\Anaconda3\lib\cProfile.py", line 160, in <module>
main()
File "C:\Users\pbreach\Anaconda3\lib\cProfile.py", line 155, in main
parser.print_usage()
File "C:\Users\pbreach\Anaconda3\lib\optparse.py", line 1587, in print_usage
print(self.get_usage(), file=file)
File "C:\Users\pbreach\Anaconda3\lib\optparse.py", line 1573, in get_usage
self.expand_prog_name(self.usage))
File "C:\Users\pbreach\Anaconda3\lib\optparse.py", line 1550, in expand_prog_name
return s.replace("%prog", self.get_prog_name())
File "C:\Users\pbreach\Anaconda3\lib\optparse.py", line 1545, in get_prog_name
return os.path.basename(sys.argv[0])
IndexError: list index out of range
を、私はあまり(this answerの範囲にpython module.py
とpython -m module
の違いを認識してい)...しかし、私はここで間違っているのか分かりません。トレースバックからは十分な引数がスクリプトに渡されていないようですが、私はcProfileに慣れていません。
このエラーがなぜ発生しているのですか?コードを取得するにはどうすればよいですか?
ああまた
sys.argv
が代わりにこれを試してみてくださいmain.py
含まないことを意味します。私はトレースバックからそれを選んでいたはずです。ちょうど何らかの理由で何か関連する輸入品になると想定していました。 – pbreach