Независимый запуск скрипта Python отчета Nsight Systems
Я изменил копию одного из сценариев отчетов Nsight Systems (gpukernsum) и теперь хочу запустить его самостоятельно. Итак, я пишу:
./gpukernsum.py report.sqlite
Это не работает; Я получил:
ERROR: Script 'gpukernsum.py' encountered an internal error.
$ ./gpukernsum.py report.sqlite
File "./gpukernsum.py", line 40
"""
^
SyntaxError: invalid syntax
Я знаю, это потому, чтоf"""whatever"""
является синтаксисом Python-3, поэтому я меняю строку скрипта с хэш-бэнгом:
#!/usr/bin/env python
к:
#!/usr/bin/env python3
и теперь я получаю:
$ ./gpukernsum.py report.sqlite
Traceback (most recent call last):
File "/path/to/./gpukernsum.py", line 7, in <module>
import nsysstats
ModuleNotFoundError: No module named 'nsysstats'
Поэтому я добавил соответствующий каталог в путь поиска:
export PYTHONPATH="$PYTHONPATH:/opt/nvidia/nsight-systems/2022.1.1/host-linux-x64/python/lib"
и теперь я получаю:
$ ./gpukernsum.py report.sqlite
near "WITH": syntax error
... и я застрял. Соответствующая область кода:
and not a percentage of the application wall or CPU execution time.
"""
query_stub = """
WITH
summary AS (
SELECT
coalesce({NAME_COL_NAME}, demangledName) AS nameId,
т.е. "WITH" является частью строкового литерала, который является SQL-запросом. Так в чем проблема? Питон жалуется? sqlite жалуется?
Примечание:
- Системы Nsight 2022.1.1
- ЦенОС 7
- Я использую исходный код gpukernsum.py — я не вносил в него никаких изменений (кроме описанных выше).
- В моей системе есть Python3.9.1 для
python3
.
1 ответ
Обходной ответ:
Nsight Systems поставляет собственную версию Python сlib
иbin
каталоги.
Если вы запустите свой скрипт с этой конкретной версией, установивPYTHONPATH
как описано в вашем вопросе - тогда скрипт будет работать. В конце концов, это то, чем занимается сам Nsight.