Python делают системы - PullRequest
       5

Python делают системы

19 голосов
/ 21 июля 2010

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

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

На данный момент мне известно о

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

Ответы [ 3 ]

3 голосов
/ 22 июля 2010

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

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

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

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

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

2 голосов
/ 31 мая 2015

Вот состояние 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 , являющегося добровольным усилием.1045 * buildit :
      • (-) Не поддерживает Python 3.
      • (-) по состоянию на 2013-11-17, версия 0.81 является самой последней.
      • Состояние разработки :: 3 - Альфа
      • https://pypi.python.org/pypi/buildit/
0 голосов
/ 21 июля 2010

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

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