Как указать условие завершения установки с помощью python setuptools - PullRequest
1 голос
/ 22 декабря 2010

Я пытаюсь создать распространяемое яйцо с помощью setuptools, и моя программа зависит от наличия wget, который, очевидно, недоступен в PyPi.У меня есть небольшой скрипт, который проверяет наличие wget, просит пользователя установить его и возвращает -1, если он не установлен, или возвращает 0, если он установлен.

Я хочу завершить установку моей программы, только если мой скрипт проверки wget вернет 0. Как я могу сделать это с помощью setuptools?

Ответы [ 2 ]

1 голос
/ 16 января 2011

Прежде чем вызывать метод setup() в файле setup.py, вы можете проверить, существует ли wget, а если нет, то вы можете выйти с сообщением о том, что вам нужен wget в качестве зависимости для вашего программного обеспечения.

if __name__ == '__main__':

    # Check for wget
    if sys.platform == 'linux2' and not ((os.path.exists('/usr/bin/wget') or os.path.exists('/usr/local/bin/wget')):
        sys.exit("You need wget binary for this software to work")

    # setup code
    setup(name='yoursoftware',
          version='42',
          data_files = [  # All your setup details
                        (script_install_location, ['somescript.py']),

          )

Как объяснил другой автор, если вы можете выполнить все, что пытаетесь, без wget и получить его с помощью метода urlretrieve urllib, то это будет кроссплатформенное решение.

0 голосов
/ 16 января 2011

В зависимости от того, для чего вам нужен wget, рассматривали ли вы возможность написания своего собственного wget-эквивалента в python с использованием модулей urllib или urllib2? Тогда у вас будет что-то кроссплатформенное и под вашим контролем, и вы сломаете свою зависимость от wget. Посмотрите на метод urlretrieve.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...