Независимый запуск скрипта 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.

Другие вопросы по тегам