Подтвердить что ты не робот

Системы Python

Каковы преимущества и проблемы с различными системами Python make?

note Мы используем обозначения " (+)" и " (-)" соответственно в начале элементов списка, чтобы укажите преимущества и проблемы.

До сих пор я знаю

  • buildit
    • ранее назывался pymake
    • (-) кажется устаревшим: последний выпуск был в конце 2007 года.
  • zc.buildout
    • (+) в настоящее время активен с 2010-07-20
    • использует синтаксис типа rc-file с [sections]
    • (-) код python не может (?) легко интегрироваться в файлы конфигурации.
    • кажется, уделяет большое внимание работе с .egg файлами.
  • scons
    • (+) в настоящее время активен с 2010-07-20
    • файлы конфигурации пишутся в чистом Python
    • (+) код python может быть легко интегрирован в файлы конфигурации
    • (-)? использование Python для файлов конфигурации может повлечь за собой дополнительную многословность
  • waf
    • (+)? Mark говорит "Преимущества как scons, но быстрее"
    • Любые недостатки? Почему люди все еще используют scons?
4b9b3361

Ответ 1

Один из элементов waf состоит в том, что он должен быть скопирован в исходное дерево программы. Scons намного больше похож на make в том, что он установлен один раз в системе, а затем у вас есть по существу только файл данных (в виде программы python) в исходном дереве.

Как следствие, Scons упакован на Ubuntu/Debian, а waf - нет.

В Scons можно немного усложнять метапрограммирование, которое манипулирует графиком зависимости или добавляет новые понятия для вывода. Видимо, ваф лучше в этом.

Я часто использовал Scons много раз; для моего следующего скомпилированного проекта я, вероятно, по крайней мере попробую waf.

Вы можете прочитать опыт Samba с waf. Они сообщают, что переход от autoconf к Waf получил правильные настройки rpath и сократил двоичные файлы, связав необходимые файлы объектов ровно один раз для каждой программы.

Ответ 2

Вот статус 4 систем создания программного обеспечения для Python 3 по состоянию на 2015-05-31.

  • WAF:
    • (+) Последняя версия - 1.8.10 от 2015-05-24.
    • (+) Поддерживает Python 2.5 до 3.4.
    • https://waf.io/book/
  • zc.buildout:
  • SCons:
    • (-) По состоянию на 2014-09-27, scons остановился в своем порту на Python 3, из-за того, что scons были волонтерской работой.
    • http://www.scons.org/RELEASE.txt
  • buildit:
    • (-) Не поддерживает Python 3.
    • (-) по состоянию на 2013-11-17, версия 0.81 является последней.
    • Статус разработки:: 3 - Alpha
    • https://pypi.python.org/pypi/buildit/

Ответ 3

Когда я использовал waf около 1,5-2 лет назад, у него была очень редкая и плохая документация, которая сильно ограничивала ее полезность. Однако я не использовал waf, хотя, возможно, ситуация изменилась.