Skip to content
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. Целесообразность под вопросом, надо ещё поэкспериментировать чуть-чуть.

Элементы в этот список могут добавиться по ходу контеста если возникнет нужда.

Clone this wiki locally