Eu tentaria usar "ensure = > installed" em vez de "ensure = > latest".
A partir da referência do tipo de marionete :
What state the package should be in. On packaging systems that can retrieve new packages on their own, you can choose which package to retrieve by specifying a version number or latest as the ensure value. On packaging systems that manage configuration files separately from “normal” system files, you can uninstall config files by specifying purged as the ensure value. Valid values are present (also called installed), absent, purged, held, latest. Values can match /./.
Eu não sei como o provedor pip está escrito, mas aposto que se você usar installed
em vez de latest
, o fantoche detectará que o pacote já está instalado e não tentará instalá-lo novamente.