bin: pyrunmain чтобы запустить модули в которых не сделано if __name__ == '__main__'
Kirill Smelkov authored
Например в ZODB есть ZODB.FileStorage.fsdump который в ZODB/setup.py
поставлен как

    entry_points = """
    [console_scripts]
    fsdump = ZODB.FileStorage.fsdump:main
    ...

т.е. после сборки оно сгенерирует отдельный файл со следующим содержимым

    #!/usr/bin/python
    # EASY-INSTALL-ENTRY-SCRIPT: 'ZODB3==3.9.7','console_scripts','fsdump'
    __requires__ = 'ZODB3==3.9.7'
    import sys
    from pkg_resources import load_entry_point

    if __name__ == '__main__':
        sys.exit(
            load_entry_point('ZODB3==3.9.7', 'console_scripts', 'fsdump')()
        )

т.е. программу можно будет запустить.

Но это после сборки. А in-tree программу не запустить.

Не уверен что добавление if __name__ == '__main__' примут в upstream
из-за entrypoint'а. Мне зачастую удобно работать in-tree, поэтому
добавляю простую утилиту для запуска таких программ.
9b00cc9c