pyenv python2.7/3.6 共存/切换实践

在docker(python27) 环境中

参考 简书-pyenv 让 python 版本完美切换

更多见github/pyenv-virtualenv

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
docker search python
>> ...

docker pull centos/python-27-centos7

docker images

<!--运行docker 环境 -->
docker run -i -t centos/python-27-centos7 /bin/bash

<!--继续配置环境... -->

<!--首先把项目克隆下来,放在家目录下的隐藏文件夹中:.pyenv-->
git clone https://github.com/pyenv/pyenv.git ~/.pyenv

<!--配置环境变量 ,依次执行如下命令-->
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bashrc


<!--安装 pyenv-virtualenv-->
<!--插件克隆在刚才已经安装完毕的 pyenv 的 plugins 文件夹中-->
git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc

source ~/.bashrc

<!--开始使用 pyenv-->

pyenv version/versions(查看本地安装的python版本)

<!-- pyenv install 敲tag ,可列出支持的版本 -->
pyenv install 3.6.8

<!--如果失败,可安装依赖的包-->
sudo yum install gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk-devel libffi-devel

pyenv versions

<!--pyenv 托管 python 版本,virtualenv 使用 python 版本-->

<!--创建虚拟环境-->
pyenv virtualenv 3.6.8 venv3.6.8

<!--激活, 在docker中,发现activate 并不能成功切换环境 ,最终使用 local 可以完成切换 -->
<!--local 命令,会在目标文件夹中生成 .python-version 文件, 文件内容是 venv3.6.8, 这样只要进入目录就会自动激活环境 -->
pyenv activate venv3.6.8
pyenv local venv3.6.8

<!--查看pip 安装目录 -->
pip --version

<!--更新pyenv -->
cd ~/.pyenv 或者 cd $(pyenv root)
git pull

<!--卸载 pyenv-->
1. 要删除环境变量
2. rm -rf ~/.pyenv


<!--继续配置环境..., 在另一个窗口中将当前docker 保存成镜像, 方便以后使用 -->

docker commit 8bacc8c47607(docker ps.pid) centos_pyenv_368