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.

Надеюсь это поможет!

Другие вопросы по тегам