Обработка 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, чтобы он автоматически добавлял это заявление после установки?
Лучший