Во-первых, это необычная ситуация. Я никогда не видел, чтобы другой пакет удалял все старые версии так, как это делает BeautifulSoup. Я считаю, что это скорее враждебное поведение пользователя, за исключением, возможно, случаев серьезного исправления безопасности.
Тем не менее, если вам нужен надежный процесс сборки с использованием pip, вам действительно нужно отразить все пакеты, на которые вы полагаетесь, локально. Это не сложно сделать; вы можете использовать опцию --download pip (или ваш существующий кэш pip), чтобы получить все tar-архивы пакетов, а затем просто сбросить их в проиндексированную веб-директорию и использовать --find-links в вашем файле требований для указания там pip плюс --no-index, чтобы запретить использование PyPI).