Приглашение пользователя при установке пакета "pip install <pkg>" - PullRequest
1 голос
/ 16 декабря 2011

Я создал tar.gz пакета, который включает файл setup.py. setup.py использует функцию setup (), предоставленную в distutils.core. Я хочу сообщить пользователю, когда он запускает "pip install .tar.gz". К сожалению, похоже, что pip перенаправляет все stdout и stderr команды «python setup.py install» через специальный фильтр журнала, который читает stdout построчно. Это означает, что у меня не может быть приглашения, такого как «Email: ...», так как «Email:» не будет напечатан, пока пользователь не нажмет ввод. Кроме того, фильтр журнала выравнивает каждую строку вывода, что не идеально.

1 Ответ

2 голосов
/ 16 декабря 2011

Не делайте этого.

Если во время установки абсолютно необходимо получить информацию от пользователя, попросите установить переменную среды и завершиться неудачей, если она не установлена.А еще лучше, чтобы файл конфигурации в виде простого текста запустил вашего модуля - и установил его со значениями по умолчанию во время установки

Не пытайтесь сделать интерактивный сеанс необходимым во время установки, потому чтоИдея PIP и easy_install состоит в том, что они также устанавливают предварительные условия пакета - так что они могут установить много пакетов в пакете.Пользователь будет ожидать, что установка pip выполнит свою работу, а неожиданное интерактивное приглашение приведет к разрушению автоматических установок, предварительных цепочек, установочных сборок, удаленных установок и так далее.

...