Вопрос

Я просто учусь искусству написания setup.py файл для моего проекта.Я вижу, что есть много разговоров о setuptools, который, как предполагается, превосходит distutils.Однако есть одна вещь, которую я не понимаю, и я не видел, чтобы она рассматривалась ни в одном учебнике, который я читал об этом:Что делать, если setuptools не установлен?Я понимаю, что это не часть стандартной библиотеки, так как же вы можете предположить, что человек, который хочет установить вашу программу, установит ее?

Это было полезно?

Решение

Вы не можете предполагать, что он установлен.Есть способы обойти это, вы можете вернуться к distutils (но тогда зачем вообще нужны setuptools) или вы можете установить setuptools в setup.py (но я думаю, что это зло).

Используйте setuptools только в том случае, если вам это нужно.

Когда дело доходит до setuptools и distrubute, они совместимы, и выбор одного из них по сравнению с другим в основном зависит от пользователя.Этот setup.py идентичен.

Другие советы

Стандартный способ распространения пакетов с помощью setuptools включает в себя ez_setup.py скрипт, который автоматически загрузит и установит setuptools сам по себе - в Windows, я полагаю, он фактически установит исполняемый файл для easy_install.Вы можете получить это из стандартного дистрибутива setuptools / easy_install.

В большинстве библиотек, которые я когда-либо устанавливал для python, появляется предупреждение "Вам необходимо установить setuptools".Я думаю, вы могли бы сделать это также хорошо, вы могли бы добавить ссылку, чтобы пользователю не приходилось искать ее в Интернете.

Я использовал setuptools для компиляции многих скриптов python, которые я написал в Windows EXEs.Однако я всегда понимал (по опыту), что на компьютере, на котором запущен скомпилированный EXE-файл, не обязательно устанавливать средства установки.

Надеюсь, это поможет

Я бы сказал, это зависит от того, к какому пользователю вы обращаетесь.

Если они просто пользователи, а не программисты на Python, или если они являются базовыми программистами, использование setuptools поначалу может оказаться немного излишним.Для таких distutils идеально подходит.

Что касается клиентов, я бы определенно придерживался distutils.

Для большего количества программистов-энтузиастов подойдут setuptools.

Каким-то образом это также зависит от того, как вы хотите распространять обновления и как часто.Например, есть ли у пользователей доступ к Интернету без неприятной настройки прокси-сервера их компанией, которая заблокировала бы setuptools?- У нас есть один, и это дополнительный шаг для настройки и обеспечения его работы на каждой рабочей станции.

Вы можете загрузить установщики Windows EXE и Linux RPM отсюда

http://pypi.python.org/pypi/setuptools

Затем, как только вы установите setuptools на место, вы можете использовать easy_install команда для загрузки и установки новых пакетов.Поскольку easy_install также автоматически загружает и устанавливает зависимости, вы можете захотеть настроить virtualenv ( виртуальная среда ) прежде чем вы действительно воспользуетесь им.Таким образом, вы можете решить, хотите ли вы установить кучу пакетов в стандартную установку Python вашей системы.

Да, это означает, что у ваших пользователей должны быть установлены setuptools, чтобы они могли им пользоваться.Конечно, вы могли бы взять установщики setuptools, переименовать их и упаковать следующим образом НСИ и распространяйте это среди своих пользователей.Дело в том, что вам нужно что-то установить, поэтому, если вы не хотите помещать свое приложение в программу установки, вы можете вместо этого упаковать setuptools.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top