转载自Lamborryan,作者:Ruan Chengfeng 本文链接地址:http://lamborryan.github.io/python-pyenv
使用Python的人一定会为各种Python的版本控制烦恼, 不过幸好有pyenv为我们提供了方便。Pyenv是python的版本管理工具,pyenv之于python相当于rvm之于ruby。
在Mac OS X下,我用homebrew安装pyenv:
brew update
brew install pyenv
要使改变马上生效,运行一下
$SHELL -l
至此,pyenv的配置也完成了。
来看看pyenv的几个命令
比如我默认的启动python是2.7.2, 当我们使用pyenv global 3.5.1后现在指向了3.5.1
% pyenv versions
system * 3.5.1(set by /Users/rcf/.pyenv/version)
但是当我运行python –version 却还显示的是2.7.2. 这是因为需要在.zshrc中添加一行配置(我用的是zsh)
if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi
如此查看python版本已经正常
[2] % python --version
Python 3.5.1
以后需要切换版本只需要使用pyenv global/local <version>.
我们查看现在使用的python的路径
% which python
/Users/rcf/.pyenv/shims/python
但是pycharm默认使用的python却是/Library/Frameworks/Python.framework/Versions中的python.
所以需要在Files—>default setting-->Default project—>project interpreter中add local, /Users/rcf/.pyenv/shims/python.
#!/usr/bin/python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释器; #!/usr/bin/env python这种用法是为了防止操作系统用户没有将python装在默认的/usr/bin路径里。当系统看到这一行的时候,首先会到env设置里查找python的安装路径,再调用对应路径下的解释器程序完成操作。 #!/usr/bin/python相当于写死了python路径; #!/usr/bin/env python会去环境设置寻找python目录,推荐这种写法。
使用了pyenv之后会, pyenv的python在/usr/bin/python前面了。
PATH=/Users/rcf/.pyenv/shims:/Users/rcf/Soft/maven/bin:/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin
所以以后再用#!/usr/bin/python就会出现版本不匹配了。建议使用#!/usr/bin/env python。 或者shell mv /usr/bin/python /usr/bin/python2.7.10 ln -s /usr/bin/python /Users/rcf/.pyenv/shims/python
本文完