本文共 1923 字,大约阅读时间需要 6 分钟。
使用 Python 的人时常会精神错乱,因为 Python 的版本太多了,有些 Python Package 还会挑版本,这让开发、维护甚至生产环境出现很多很恼人的问题。于是针对这个问题,一系列的 Python 独立包环境出现了,比如有名的 virtualenv 使用空间换时间的战术,通过复制一份已有的 Python 环境,修改系统,特别是 Linux 系统的 PATH 变量使得在该虚拟包环境中的 Python 路径指向自己,这样就可以不受系统的 Python 版本影响。
但是 virtualenv 的出现只是部分地解决 Python 的独立环境问题,并没有完全地解决其独立环境的构建问题。如果我需要在同一个系统里,同时存在 Python2.6 、Python2.7 、Python3.5 的版本环境,甚至是 jython、 pypy 这样的环境,并且可以根据需要来切换需要的 Python 版本,使用 virtualenv 会比较麻烦。
这个就是 Pyenv 出现的原因,作为一个 Python 的版本管理工具,实现无缝的 Python 版本切换,并且整合 pyenv-virtualenv 的插件,也使得 Pyenv 具备 virtualenv 一样的创建具体 Python 版本的虚拟包环境的能力。
略 可以参考我之前的文章地址 :
最好homebrew也进行换源 https://blog.csdn.net/qq_43213352/article/details/104343627brew updatebrew install pyenv# 等待安装成功,如果不成功,请进行homebrew镜像换源:
安装之后:
在.bashrc或者.bash_profile文件中输入export PATH="$HOME/.pyenv/bin:$PATH"eval "$(pyenv init -)"# 然后使用 source ~/.bash_profile 刷新设置
或者直接命令行输入这两句也是一个意思。
echo 'export PATH="/home/vagrant/.pyenv/bin:$PATH"' >> ~/.bash_profileecho 'eval "$(pyenv init -)"' >> ~/.bash_profile# 然后使用 source ~/.bash_profile 刷新设置
这样做完之后,就已经安装好了pyenv了
以便于我们之后 安装新的python
apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev \libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \xz-utils tk-dev libffi-dev liblzma-dev python-openssl git
git clone https://github.com/yyuu/pyenv.git ~/.pyenv
git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
如果采用第一种,系统是会告诉你怎么做的(即将最后的三行追加到~/.bash_profile,做环境变量)
1.# the following to ~/.bash_profile:export PATH="/root/.pyenv/bin:$PATH"eval "$(pyenv init -)"eval "$(pyenv virtualenv-init -)"
如果采用第二种(同样是做环境变量)
2.# shell echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
source ~/.bash_profile
使用以及加快下载速度: