Системы 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
?
Ответы
Ответ 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:
- buildit:
Ответ 3
Когда я использовал waf около 1,5-2 лет назад, у него была очень редкая и плохая документация, которая сильно ограничивала ее полезность. Однако я не использовал waf, хотя, возможно, ситуация изменилась.