Пока игрался с «воспроизводимым пайплайном» обнаружил у миниконды то ли баг, то ли фичу, неотличимую от бага. Но так и не понял, откуда ноги растут и не смог добиться воспроизводимого эффекта.
Установим в conda-окружение питоновский пакет, который добавляет исполняемый скрипт в PATH. Всё работает, как ожидается
conda create --yes --name myenv python=3.7
conda activate myenv
python3 -m pip install myExecutablePkg==42.0
myExecutablePkg --version # => 42.0
```И, что важно, я могу эту команду передать в bash-субпроцесс, и она запустится.
`echo myExecutablePkg --version | bash # => 42.0
`Дальше я поступлю как плохой мальчик и установлю другую версию библиотеки в систему глобально.
Не делайте так! Куча статей говорят, что так делать нельзя, потому что потому. Но какой же русский любит соблюдать технику безопасности?
conda deactivate
myExecutablePkg —version # myExecutablePkg: command not found
python3 -m pip install myExecutablePkg==3.14
myExecutablePkg —version # ⇒ 3.14
Теперь снова зайдём в виртуальное окружение.
conda activate myenv
myExecutablePkg —version # ⇒ 42.0
`echo myExecutablePkg --version | bash # => 3.14
`Мои попытки отследить, кто кого вызывает, и как именно настроить окружение, чтобы прийти к такому результату, не привели к успеху.