Проблема с pyenv и anaconda при экспорте PATH
В моей системе установлены как pyenv+virtualenv, так и Anaconda для управления виртуальной средой.
Мой файл.zshrc выглядит так:
# Load pyenv automatically:
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
# added by Anaconda3 4.2.0 installer
export PATH="$HOME/anaconda3/bin:$PATH"
В данной папке я настроил локальный pyenv
виртуальная среда с
$ pyenv local test-env
Листинг pyenv
virtual-envs в этой папке приводит к:
$ pyenv versions
system
2.7.12
2.7.12/envs/test-env
* test-env (set by /home/<path>/.python-version)
Но когда я загружаю python вместо открытия сессии с Python v2.7.12 (как и следовало ожидать, так как pyenv
виртуальная среда загружается), я получаю:
$ python
Python 3.5.2 |Anaconda custom (64-bit)| (default, Jul 2 2016, 17:53:06)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
Очевидно, что платформа Anaconda встает между моими pyenv
виртуальная среда. Листинг conda
среда показывает:
$ conda-env list
# conda environments:
#
root * /home/<user>/anaconda3
Если я закомментирую export PATH="$HOME/anaconda3/bin:$PATH"
линия, pyenv
работает как положено.
Есть ли способ поддерживать обоих этих менеджеров, не конфликтуя друг с другом?
1 ответ
Ответ, по-видимому, похоронен в пункте 3 инструкций pyenv Basic GitHub Checkout:
Пожалуйста, убедитесь, что
eval "$(pyenv init -)"
находится в конце файла конфигурации оболочки, так как он манипулируетPATH
во время инициализации
Таким образом, решение состояло в том, чтобы переместить эту линию в конец .zshrc
файл, вот так:
# added by Anaconda3 4.2.0 installer
export PATH="$HOME/anaconda3/bin:$PATH"
# Load pyenv automatically:
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"