Обработка KeyboardInterrupt в лаунчере скриптов с простой установкой

В настоящее время я пишу пакет Python (скажем, my_pack), который содержит скрипт Python (здесь обозначается как my_script) для использования в командной строке. Эти сценарии копируются при установке в специальный каталог через setup.py. Запуск программы командной строки подразумевает, что следующий код, созданный setup.py, будет интерпретирован.

        #!/Users/me/miniconda2/envs/myenv/bin/python                                                                      
        # EASY-INSTALL-SCRIPT: 'my_pack==0.7.4','my_script'                                                                
        __requires__ = 'my_pack==0.7.4'
        __import__('pkg_resources').run_script('my_pack==0.7.4', 'my_script')

Хотя my_script сам по себе обрабатывает KeyboardInterrupt, я заметил, что когда программа завершается очень скоро после запуска, KeyboardInterrupt не обрабатывается. Эта проблема может быть исправлена ​​путем включения кода easy-install в оператор try-Кроме.

        #!/Users/puthier/miniconda2/envs/myenv/bin/python                                                                      
        # EASY-INSTALL-SCRIPT: 'my_pack==0.7.4','my_script' 
        try:                                         
            __requires__ = 'my_pack==0.7.4'
            __import__('pkg_resources').run_script('my_pack==0.7.4', 'my_script')
        except KeyboardInterrupt:
            print("Canceled upon user request.")
            sys.exit(0)

Мой вопрос: как настроить setup.py, чтобы он автоматически добавлял это заявление после установки?

Лучший

0 ответов

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