-
Notifications
You must be signed in to change notification settings - Fork 0
Tools
Vlad-Shcherbina edited this page Jul 23, 2014
·
3 revisions
- cpython 2.7.*. Почему не 3? Ну он не слишком много добавляет, плюс небольшой риск, а 2.* проверен временем. Почему не jython/pypy/ironpython/...? Потому что для cpython есть вообще все библиотеки.
- pip или easy_install. Опционально, помогает устанавливать другие питоновские библиотеки.
- virtualenv. Опционально, помогает не замусоривать машину другими питоновскими библиотеками. Инструкции.
- pypy ~2.3.1. Очень желательно. Это drop-in replacement для cpython, грубо говоря на 99% совместимый с ним в том что касается чистого питона и стандартной библиотеки. Есть тонкости, например несовместимость с numpy и другими си-экстешнонами, но в целом это очень дешёвый способ ускорить выполнение в непредсказуемое и существенное число раз (2x-50x). Правда, потребление памяти тоже становится непредсказуемым. Внутри у него tracing jit.
- nose. Тестовая библиотека/фреймворк. Используется главным образом ради функции "пройтись по всем модулям и запустить всё что выглядит как тест". Преимущество перед стандарным модулем unittest в том, что тест не обязан быть методом класса, может быть просто глобальной функцией, так что получается чуть меньше бойлерплейта. Но если хочется, unittest.TestCase тоже поддерживается, как и доктесты.
- numpy. Очень желательно. Даже в полностью дискретных задачах линейная алгебра иногда оказывается полезной. Также иногда помогает для ускорения очевидно векторного кода.
- matplotlib. Тут всё понятно вроде.
- sh. Достаточно удобная альтернатива шелл-скриптам (которых я надеюсь у нас будет мало) и/или модулю subprocess. Уместно для задач вроде "вызвать внешнюю программу A, перенаправив stdout в null, а stderr во внешнюю программу B".
- flask. Опционально и по обстоятельствам, наверное. Мне в последнее время нравится идея локального веб сервера как GUI, по крайней мере для некоторых типов задач. Фласк это простой фреймворк, в котором, в отличие от django например, можно написать веб сервер в одном файле.
- swig. Целесообразность под вопросом, надо ещё поэкспериментировать чуть-чуть.
Элементы в этот список могут добавиться по ходу контеста если возникнет нужда.