1.安装pyenv所需要的包,这个很重要
点击这里查看安装所需要的包
我的系统是CentoS7.9,因此执行以下语句
yum install gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk-devel libffi-devel xz-devel
如果系统没有git的话,还需要下载git
yum install -y git
2.创建python用户并修改密码(方便管理)
useradd python
passwd python
3.使用python用户登录后安装Pyenv(因此以下所有操作仅对python用户生效)
pyenv官网:https://github.com/pyenv/pyenv
pyenv-installer插件:https://github.com/pyenv/pyenv-installer
3.1登录
su - python
3.2通过git下载pyenv(如果失败了多尝试几次)
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
将环境变量添加至配置文件内
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >>~/.bash_profile
echo 'eval "$(pyenv init --path)"' >>~/.bash_profile
exec $SHELL -l #执行这条语句实现重启系统
4.查看pyenv提供支持的python版本,同时查看是否安装pyenv成功
pyenv install --list
5.pyenv安装指定版本的python
如果通过pyenv install [版本号]
,这样做达到的顺序是:系统先建立一个临时目录(/tmp/),然后联网下载所需要的包到临时目录,然后再解压缩编译,得到你要安装的包,这样做的话耗时比较久。。
所以我们使用本地缓存的方式安装不同版本的python
[python@lura ~]$cd .pyenv/
[python@lura ~/.pyenv]$ls
bin completions libexec man README.md terminal_output.png
CHANGELOG.md CONDUCT.md LICENSE plugins shims test
COMMANDS.md Dockerfile Makefile pyenv.d src versions
[python@lura ~/.pyenv]$mkdir cache
[python@lura ~/.pyenv]$ls
bin completions LICENSE pyenv.d terminal_output.png
cache CONDUCT.md Makefile README.md test
CHANGELOG.md Dockerfile man shims versions
COMMANDS.md libexec plugins src
将本地下载好的python包直接拖动到Cache目录下:
建议下载.tar.xz 和.tgz两种包,这样如果在cache目录下找到该版本对应的包,可以避免再联网下载。
安装过程如下:
先将压缩包下载好放在/cache目录下,这样使用pyenv安装时就会很快,我这里安装的是3.5.3版本。
python官网下载链接
python>cd ./pyenv
python>mkdir cache
python>ls
Python-3.5.3.tar.xz Python-3.5.3.tgz
此时安装,速度就很快了
pyenv install 3.5.3 -v #-v表示安装过程可视化
6.下载virtualenv,其可以创建自己项目的环境
$which pyenv
/home/python/.pyenv/
$git clone https://github.com/pyenv/pyenv-virtualenv.git /home/python/.pyenv/plugins/pyenv-virtualenv
写入配置文件
echo 'eval "$(pyenv virtualenv-init -)"' >>~/.bash_profile
source ~/.bash_profile
创建自己的虚拟环境lwj123 所用python版本为3.5.3
pyenv virtualenv 3.5.3 lwj353
cd lwj/projects/cmdb/ #设置自己工作目录文件夹的环境为lwj123
pyenv local lwj353 #使用pyenv更改当前环境的python版本,local是对当前文件夹生效
查看所有环境
$pyenv versions
可以看到使用了virtualenv管理的环境后,安装的包都装在envs下的自己创建的环境的site-packages下了,与其他项目不会发生冲突。
7.添加pip国内镜像源到配置文件pip.conf
使用pip安装包时,创建pip.conf文件,里边放入可信赖的镜像网站🔗,可以提高pip安装速度
windows系统为pip.ini
mkdir ~/.pip
cd ~/.pip
vim pip.conf #添加镜像源
[global]
index-url=https://mirrors.aliyun.com/pypi/simple/
trusted-host=mirrors.aliyun.com
问题记录
切换不同python后,虽然pyenv版本更换了,但是python版本没有换过来,对应的pip版本也就换不过来了,问题如下:
解决方法:修改~/.bash_profile文件
echo 'eval "$(pyenv init --path)"' >>~/.bash_profile
##注意,比较早的教程写的都是
echo 'eval "$(pyenv init -)"' >>~/.bash_profile
这样就会出现我上面所说的这个问题
问题解决后,pyenv管理python环境就没有什么问题了噢~