Глава 6. Модули
256
Впоследствии, для того чтобы сделать эти изменения постоянными, используйте
SCCS для обратного слияния изменений исходного кода и требований из ветви.
По желанию можно создавать виртуальные окружения на
основе отладочных
сборок Python, что предоставит вам доступ к обильной инструментальной инфор-
мации о производительности вашего кода на Python (и,
разумеется, интерпретатора).
Сама разработка собственных виртуальных окружений требует контроля изме-
нений, и простота их создания способствует этому. Предположим, вы
недавно вы-
пустили версию 4.3 модуля и хотите протестировать его код с новыми версиями двух
его зависимостей. Обладая достаточными навыками, вы
могли бы заставить pip за-
менить имеющиеся зависимости в вашем существующем виртуальном окружении.
Однако гораздо
легче разветвить проект, обновить требования и создать со-
вершенно новое виртуальное окружение на основе обновленных требований. Вы
по-прежнему имеете нетронутое исходное виртуальное
окружение и можете пере-
ключаться между окружениями для исследования специфических аспектов любых
аспектов
миграции, которые могут возникать. Как только вы адаптируете код таким
образом, чтобы все тесты проходили с обновленными зависимостями, вы фиксиру-
ете изменения своего кода и требований и выполняете слияние в версию 4.4, что-
бы
завершить обновление, известив своих коллег о том,
что теперь ваш код готов
для работы с обновленными версиями зависимостей.
Виртуальные окружения не решают всех проблем,
возникающих перед програм-
мистом на языке Python. Всегда можно создать более сложные или более общие
инструменты. Но, слава Богу, виртуальные окружения работают, и мы должны как
можно полнее использовать все предлагаемые ими преимущества.
Python in a Nutshell.indb 256
19.09.2018 19:03:29