Я установил pyenv-virtualenv
с помощью Linuxbrew (Homebrew 2.2.5) на моем Ubuntu 16.04 VPS. Версия pyenv: 1.2.16
. Теперь, когда я делаю такой тест:
pyenv install 3.8.1
pyenv virtualenv 3.8.1 test
cd /.pyenv/versions/3.8.1/envs/test
pyenv local 3.8.1
Тогда вход / выход из /.pyenv/versions/3.8.1/envs/test
не активирует деактивацию виртуальной среды, и я не вижу (test) username:~
в своей оболочке. Я также создал каталог /home/users/test
и .python-version
там, но все еще вход / выход из каталога ничего не делает.
В соответствии с документацией :
Если eval «$ (pyenv virtualenv-init -)» настроен в вашей оболочке, pyenv-virtualenv автоматически активирует / деактивирует virtualenvs при входе / выходе из каталогов, которые содержат файл. python -version, который содержит имя допустимой виртуальной среды как показано в выводе pyenv virtualenvs (например, venv34 или 3.4.3 / envs / venv34 в примере выше). . python -version файлы используются pyenv для обозначения локальных Python версий и могут быть созданы и удалены с помощью локальной команды pyenv.
Итак, первый вопрос: почему это не работает? Почему виртуальная среда не активируется / деактивируется автоматически при входе / выходе из каталога, содержащего файл .python-version
?
Также, когда я активирую virtualenv вручную pyenv activate test
, а затем проверяю версию Python, она печатает версию системы Python, а не версию из среды: Python 3.8.1
:
python --version
Python 3.7.6
Я могу получить правильную Python версию, только напрямую обращаясь к шимам virtualenv Python следующим образом:
which python
/home/andre/.pyenv/shims/python
/home/andre/.pyenv/shims/python --version
Python 3.8.1
Поведение одинаково, когда активируется "тест" virtualenv или нет. Я ожидаю, что после активации «test» команда python --version
возвращает Python 3.8.1
Итак, второй вопрос: почему pip
и python
не переключаются при активации / деактивации виртуальной среды?
Это ошибки pyenv? Или я что-то не так делаю?