Я использую Poetry для управления зависимостями Python, работающего на MacOS. Я пытаюсь запустить оболочку Poetry и заставить команды работать в оболочке правильно.
Когда я запускаю poetry shell
, я получаю следующую ошибку:
Spawning shell within /Users/r_2009/Workspace/my_project/.venv
/etc/zshrc:7: command not found: locale
/Users/r_2009/.zshrc:7: command not found: brew
/Users/r_2009/.zshrc:source:7: no such file or directory: /nvm.sh
/Users/r_2009/.zshrc:31: command not found: pyenv
/Users/r_2009/.zshrc:37: command not found: register-python-argcomplete
Другие люди сообщили об этой проблеме в выпусках GitHub для Poetry и команды poetry shell
. Объяснение заключается в том, что поэтическая оболочка выполняет некоторую работу (используя pexpect), чтобы обнаружить оболочку, внутри которой она запущена.
Если у вас возникнут проблемы с этим, вы можете напрямую запустить скрипт активации virtualenv:
# local virtual env
source .venv/bin/activate
# poetry-managed virtual env
VENV_PATH=`poetry env info | sed -n '/Virtualenv/,/System/p' | grep 'Path:' | awk '{print $2}'`
source "$VENV_PATH/bin/activate"
locale
обычно находится в /usr/bin, аbrew
— в /usr/local/bin. Сначала убедитесь, что эти файлы действительно существуют, а затем проверьте переменнуюpath
, содержит ли она эти каталоги.