Pyenv virtualenv не активируется, перепробовал все что знаю
Если бы кто-то мог помочь мне с этим вопросом, это было бы замечательно. В настоящее время я пробовал все за последние несколько дней, чтобы заставить его работать безуспешно. Я использовал pyenv и плагин virtualenv в течение месяца без проблем. Однажды я проснулся и обнаружил, что не могу активировать свой virtualenv, созданный pyenv. Перестал работать исходный бин / активировать. Я сделал все, от переустановки pyenv до переустановки Kubuntu и повторной попытки безуспешно. Я не могу сказать, что не так. Я не получаю ошибок, как вы можете видеть на изображении ниже. Насколько я понимаю, каждый раз, когда я активировал virtualenv, он отображался в моей консоли перед моим именем, чего он больше не делает. Я обязательно добавил "echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc" и все остальные необходимые вещи. Все остальные опции, доступные в pyenv, по-прежнему работают нормально, это только активация моего virtualenv. Пожалуйста помоги. Спасибо
1 ответ
Мне тоже пришлось немного разбираться в этом, особенно потому, что раньше я управлял своими virtualenv с помощью virtualenvwrapper. Помогло то, что я просмотрел функцию и увидел это:
if [[ "$(pyenv version-name)" == "system" ]]; then
pyenv deactivate || true
elif [[ "$VIRTUAL_ENV" != "$(pyenv prefix)" ]]; then
pyenv deactivate || true
pyenv activate 2>/dev/null || true
fi
Что не рассматривается, так это то, что когда вы создаете virtualenv в pyenv, он отображается как версия. Итак, когда вы делаете
pyenv versions
Вы получите список ваших питонов - с вашей виртуальной средой. Чтобы заставить это работать, это сочетание старой функциональности и новой. Ты можешь сделать:
user@server [00:00:00] [~]
-> % cd Development/test
user@server [00:00:00] [~/Development/test]
-> % pyenv shell test
(test)user@server [00:00:00] [~/Development/test]
-> %
Или для автоматики:
user@server [00:00:00] [~]
-> % cd Development/test
user@server [00:00:00] [~/Development/test]
-> % pyenv local test
(test)user@server [00:00:00] [~/Development/test]
-> %
Это удаляет файл.python-версии с версией python, которую pyenv читает и использует как python virtualenv.
Просто не забывайте управлять своим virtualenv, как python-версиями на python, и вы должны быть в состоянии поддерживать порядок. Например, чтобы затем автоматически деактивировать, вы просто меняете каталоги. Если вы сделали оболочку pyenv, вам понадобится оболочка pyenv --unset или оболочка pyenv {another_version} для перемещения virtualenv.
Надеюсь это поможет!