Единственная теория, которая у меня есть, заключается в том, что локальное тестирование смогло определить системную установку этого пакета.
Учитывая мой личный опыт работы с упаковкой в python, я бы предположилчто это основная причина. Теперь есть долгосрочное и краткосрочное решение этой проблемы:
В долгосрочной перспективе вы должны принять решение никогда не устанавливать пакеты python, которые привязаны к единой системе проекта в целом. Это включает в себя dev-зависимости, такие как pytest
или в вашем случае hypothesis
- удалите их. poetry
- один из очень немногих пакетов python, которые имеют отношение ко всей системе и должны быть установлены как таковые. Кроме того, примечание: именно поэтому рекомендуемый способ установки poetry
это не pip
, а get-poetry.py
.
Краткосрочный, вы можете настроить свою виртуальную среду с помощьюрука с virtualenv
, который блокирует глобальные пакеты сайта по умолчанию (но вполне вероятно, что envs, которые строит poetry
, имеют ту же настройку по умолчанию). Чтобы обеспечить выполнение локально установленных пакетов, вы можете установить путь выполнения перед запуском тестов:
$ PATH=$(dirname $(poetry run which python)) pytest
Если вы активировали виртуальный env (что можно сделать, запустив poetry shell
), вы также можете запуститьинструменты как модули Python:
(env)$ python -m pytest