pyenv
如果你想要拥有多个python版本且不会乱,pyenv可以很好的帮你管理python各个版本
例如:一个服务器要布置多个项目的时候,可能python的版本并不是同一个。pyenv可能会帮你大忙
安装
- 将pyenv安装到~/.pyenv(当前用户的家目录下,例如你是用test用户登录的,则安装在test用户的家目录下面。如果服务器是多人操作,最好root目录不要做任何修改,所有东西都放在当前用户下面)
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
- 配置环境变量(如果系统是zsh,请添加到~/.zshrc)
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
- 添加 pyenv 初始化(如果系统是zsh,请添加到~/.zshrc)
echo 'eval "$(pyenv init --path)"' >> ~/.bashrc
- 查看.bashrc中内容,在最末尾追加三行
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
- 使.bashrc配置生效,如没有生效则推出连接重新登录试试
source ~/.bashrc
使用
- 查看有哪些 Python 版本可以安装
pyenv install --list
- 安装某个 Python 版本
pyenv install -v 3.6.8 # 所有安装的python版本都会放在.pyenv/versions/目录下
- 查看当前 Python 版本情况(* 表示系统当前的 Python 版本,system表示系统初始版本)
[smsyu@alg-ser01 ~]$ pyenv versions
system
* 3.6.8 (set by /home/smsyu/.python-version)
3.8.1
[smsyu@alg-ser01 ~]$ which python # 当前python使用路径
~/.pyenv/shims/python
[smsyu@alg-ser01 ~]$ python -V # 当前python版本
Python 3.6.8
[smsyu@alg-ser01 ~]$ pyenv version # 查看当前已激活的Python版本
3.6.8 (set by /home/smsyu/.python-version)
-
切换 Python 版本(切换之后查看当前版本)
-
Python的全局设置,整个系统生效
pyenv global 3.8.1
-
Python的局部设置,当前目录生效(场景:切换到项目,然后选择对应的python版本,缺点:一个python版本只能有一个环境)
[smsyu@alg-ser01 test]$ python -V Python 3.6.8 [smsyu@alg-ser01 test]$ pyenv local 3.8.1 [smsyu@alg-ser01 test]$ python -V Python 3.8.1
-
-
取消设置, 使当前目录local设置失效。
pyenv local --unset
- 卸载某个 Python 版本
pyenv uninstall 3.6.8
virtualenv
可以使同一个python版本拥有不同的python环境
缺点:会在对应的项目下创建环境文件夹
安装
- 注意:在安装之前确定当前python是哪个版本,当然可以安装到任意版本中,但我个人习惯有一个主版本(常用版本)
pip install virtualenv
使用
- 新建一个目录(一般用来用作工程路径)
mkdir test
- 进入创建的目录中,创建一个完全独立干净的虚拟环境
- 不带任何参数,默认使用当前所使用的python版本,可以使用python -V查看python版本,
virtualenv venv # venv指的是虚拟环境名字,可以是任何名字
[smsyu@alg-ser01 test]$ ls venv
- 创建虚拟环境并指定python版本
pyenv -p ~/.pyenv/versions/2.7.5/bin/python myenv # myenv指的是虚拟环境名字,可以是任何名字
- 激活虚拟环境
[smsyu@alg-ser01 mypro]$ source myenv/bin/activate
(myenv) [smsyu@alg-ser01 mypro]$ python -V
Python 2.7.5
- 退出虚拟环境
(myenv) [smsyu@alg-ser01 mypro]$ deactivate
virtualenvwrapper
会把所有的虚拟环境放置在同一处,统一管理,使用方便
安装
安装(确保 virtualenv 已经安装了)
pip install virtualenvwrapper
配置
- 在.bashrc(或.zshrc)中添加下列内容:
export WORKON_HOME=$HOME/.virtualenvs # 创建虚拟环境目录,所有虚拟环境都会放到当前目录的.virtualenvs文件夹中,.virtualenvs可以是任意名字
source $HOME/.pyenv/versions/3.6.8/bin/virtualenvwrapper.sh # 激活虚拟环境指令(每个人的路径都不一样,随你的python路径变化而变化)
默认virtualenvwrapper安装在下面python解释器中的site-packages,实际上需要运行virtualenvwrapper.sh文件才行;所以需要先进行配置一下:
找到virtualenvwrapper.sh的路径:find / -name virtualenvwrapper.sh
- 启用配置
source ~/.bashrc
使用
- 创建一个虚拟环境并使用当前python版本
mkvirtualenv testenv # testenv虚拟环境名字,可以是任何名字
- 创建一个虚拟环境并指定python版本
mkvirtualenv -p ~/.pyenv/versions/3.6.8/bin/python env368
- 查看所有虚拟环境
workon
- 选择并进入虚拟环境
workon env368 # env368是我刚才创建的环境名字
- 退出虚拟环境
deactivate
- 删除虚拟环境
rmvirtualenv env368
总结
有了pyenv和virtualenvwrapper可以帮我们很轻松的管理所有的环境