2017-08-13 93 views
0

我正在使用macOS Sierra。我有使用pyenv的问题。 我想用pyenv。所以我添加了关于pyenv的路径。pyenv似乎在终端重启后恢复到较老的Python版本

$是shell。

$ vi ~/.bash_profile 

[.bash_profile中]

export PYENV_ROOT=/usr/local/var/pyenv 
if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi 
if which pyenv-virtualenv-init > /dev/null; then eval "$(pyenv virtualenv-init -)"; fi 

$ source ~/.bash_profile 

$ pyenv install 3.6.2 
$ pyenv global 3.6.2 
$ python -V 
(Console Output) Python 3.6.2 

我重新启动终端。

$ python -V 
(Console Output) Python 2.7.10 

我再次输入,pyenv global 3.6.2的外壳,但

$ python -V 
(Console Output) Python 2.7.10 

[更新〜/ .bash_profile中]

Sangwon-Hong-MacBook-Pro:~ Frodo$ source ~/.bash_profile 
Sangwon-Hong-MacBook-Pro:~ Frodo$ python -V 
Python 3.6.2 
Sangwon-Hong-MacBook-Pro:~ Frodo$ echo $PATH 
/Users/Frodo/64bit-Multicore-OS/cross/bin:/usr/local/Cellar/ruby/2.4.1_1/bin:/usr/local/bin:/usr/local/Cellar/pyenv-virtualenv/1.1.0/shims:/usr/local/var/pyenv/shims:/opt/local/bin:opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/Frodo/.rvm/bin 

[重启]:PATH不更新。

Sangwon-Hong-MacBook-Pro:~ Frodo$ python -V 
Python 2.7.10 
Sangwon-Hong-MacBook-Pro:~ Frodo$ echo $PATH 
/opt/local/bin:opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/Frodo/.rvm/bin 

什么问题?

+0

我不太清楚是什么在您的文章是输入,什么是控制台输出。我*认为*我已修复它,但有另一种看法来确保。 –

+0

这个'.bash_profile'在哪里?它在你的主目录(即'〜/ .bash_profile') – donkopotamus

+0

是的,它在我的主目录(/ Users/Frodo /)中。 我发现问题。 当我输入source〜/ .bash_profile和echo $ PATH时,它会更新关于pyev路径。 但是,当我重新启动终端和echo $ PATH时,关于pyenv的路径不包含在$ PATH中。我不知道为什么... – Frodo

回答

0

我会建议使用pyenv + virtualenv,非常好的组合。

  • 在MacOS海伊谢拉安装pyenv

    brew update brew install pyenv brew install pyenv-virtualenv

  • 需要安装Python版本:

    export CFLAGS="-I$(brew --prefix openssl)/include" export LDFLAGS="-L$(brew --prefix openssl)/lib" pyenv install 3.6.3; pyenv install 2.7.14

  • 添加到bashprofile

    ###PYENV export PYENV_ROOT=/usr/local/opt/pyenv eval "$(pyenv init -)" if which pyenv-virtualenv-init > /dev/null; then eval "$(pyenv virtualenv-init -)"; fi alias pyt='pyenv activate' alias pys='pyenv shell' alias pyd='pyenv deactivate' alias pyu='pyenv uninstall' #delete virtualenv alias pyv='pyenv virtualenv' #create virtualenv alias pyls='pyenv virtualenvs' #list virtualenvs export PYENV_VIRTUALENV_DISABLE_PROMPT=1 #disable deprecated future

你可以直接命令,而不是别名。

最佳, 伊万