在实际的学习开发过程当中,不少时候同时进行的项目不止一个,他们用到的python版本可能不同,为了避免让一个项目的环境影响到另一项目,咱们须要安装配置多个相互不依赖的环境来运行多个python项目,
pyenv 结合插件 virtualenv
就恰好知足这个需求,python
默认是安装在当前用户的家目录
下mysql
root@pts/2 $ git clone https://github.com/yyuu/pyenv.git ~/.pyenv
Cloning into '/root/.pyenv'...
remote: Counting objects: 12744, done.
remote: Total 12744 (delta 0), reused 0 (delta 0), pack-reused 12744
Receiving objects: 100% (12744/12744), 2.26 MiB | 453.00 KiB/s, done.
Resolving deltas: 100% (8837/8837), done.
复制代码
配置pyenv, 修改~/.bashrc
为以下linux
root@pts/2 $ cat ~/.bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
## add by colin
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
## end by colin
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
复制代码
配置生效git
### 方式一
从新打开一个新的 session,也就是新的命令行界面
### 方式二
在当前的命令行执行 source ~/.bashrc
### 方式三
在当前的命令行执行 exec $SHELL -l
复制代码
配置生效以后验证github
root@pts/5 $ pyenv versions
* system (set by /root/.pyenv/version)
复制代码
推荐使用 pyenv
来安装插件 pyenv-virtualenv
sql
root@pts/5 $ ls -l ~/.pyenv/plugins/
total 4
drwxr-xr-x 5 root root 4096 Jun 7 10:51 python-build
root@pts/5 $ git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
Cloning into '/root/.pyenv/plugins/pyenv-virtualenv'...
remote: Counting objects: 1800, done.
remote: Total 1800 (delta 0), reused 0 (delta 0), pack-reused 1800
Receiving objects: 100% (1800/1800), 517.45 KiB | 143.00 KiB/s, done.
Resolving deltas: 100% (1230/1230), done.
root@pts/5 $ ls -l ~/.pyenv/plugins/
total 8
drwxr-xr-x 7 root root 4096 Jun 7 12:00 pyenv-virtualenv
drwxr-xr-x 5 root root 4096 Jun 7 10:51 python-build
复制代码
配置插件bash
修改~/.bashrc
添加以下行 在上面的配置 pyenv时添加的后面session
eval "$(pyenv virtualenv-init -)"
复制代码
添加只有以下:学习
## add by colin
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
## end by colin
复制代码
生效方式参考上面pyenv的方式,这里再也不重复ui
从上面的 pyenv versions
结果看到当前主机只有一个 system环境
,也就是说只有一个系统的Python版本,并且目前Linux系统默认的Python版本是2.7
,大多状况不知足咱们实际的需求。咱们能够回用到python3.6等等。
因此能够利用 pyenv 安装Python多版本,简单方便
首先安装相关依赖
yum install readline readline-devel readline-static -y
yum install openssl openssl-devel openssl-static -y
yum install sqlite-devel -y
yum install bzip2-devel bzip2-libs -y
复制代码
安装新版本
root@pts/0 $ pyenv install 3.4.4 -v
/tmp/python-build.20160608164944.31714 /tmp
/tmp/python-build.20160608164944.31714/Python-3.4.4 /tmp/python-build.20160608164944.31714 /tmp
Installing Python-3.4.4...
configure: WARNING: unrecognized options: --enable-unicode
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for --enable-universalsdk... no
checking for --with-universal-archs... no
... ...
Ignoring indexes: https://pypi.python.org/simple
Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
Successfully installed pip-7.1.2 setuptools-18.2
/tmp/python-build.20160608161532.16979 /tmp
/tmp
Installed Python-3.4.4 to /root/.pyenv/versions/3.4.4
复制代码
检查是否安装成功
root@pts/3 $ pyenv versions
* system (set by /root/.pyenv/version)
3.4.4
复制代码
能够看到咱们已经安装了一个新的 Python版本 3.4.4
建立新的虚拟环境实际存在于~/.pyenv/versions/目录
## 建立 名字为py3.4.3的虚拟环境
## 注意 第三个 '3.4.4' 版本号码是必须的
root@pts/5 $ pyenv virtualenv 3.4.4 py3.4.4
Ignoring indexes: https://pypi.python.org/simple
Requirement already satisfied (use --upgrade to upgrade): setuptools in /root/.pyenv/versions/3.4.4/envs/py3.4.4/lib/python3.4/site-packages
Requirement already satisfied (use --upgrade to upgrade): pip in /root/.pyenv/versions/3.4.4/envs/py3.4.4/lib/python3.4/site-packages
## 查看新增的虚拟环境
root@pts/5 $ ls -l ~/.pyenv/versions/
total 8
drwxr-xr-x 7 root root 4096 Jun 7 12:05 3.4.4
lrwxrwxrwx 1 root root 40 Jun 7 12:05 py3.4.4 -> /root/.pyenv/versions/3.4.4/envs/py3.4.4
root@pts/5 $ pyenv versions
system
* 3.4.4 (set by /root/.pyenv/version)
3.4.4/envs/py3.4.4
py3.4.4
复制代码
虚拟环境的使用
## 进入虚拟环境
root@pts/6 $ pyenv activate py3.4.4
pyenv-virtualenv: prompt changing will be removed from future release. configure 'export PYENV_VIRTUALENV_DISABLE_PROMPT=1' to simulate the behavior.
(py3.4.4) Dev-mysql-mem [~] 2016-06-07 12:12:35
## 查看虚拟环境版本
root@pts/6 $ python -V
Python 3.4.4
## 退出到系统环境
root@pts/6 $ pyenv deactivate
Dev-mysql-mem [~] 2016-06-07 12:14:46
root@pts/6 $
复制代码
虚拟环境的卸载
## 方式一:暴力删除
rm -rf ~/.pyenv/versions/py3.4.4
## 方式二:温柔卸载
pyenv uninstall py3.4.4
复制代码
至此 利用 pyenv+virtualenv
安装多Python环境和独立的虚拟开发环境已经完成,接下来开启咱们新的征程吧