pyenv 环境搭建,并切换Python版本

         pyenv是一个Python版本管理工具,它能够进行全局的Python版本切换,也可以为单个项目提供对应的Python版本。使用pyenv以后,可以在服务器上安装多个不同的Python版本,也可以安装不同的Python实现。不同Python版本之间的切换也非常简单。

参考链接,感谢大神~

https://blog.csdn.net/u014793102/article/details/80302975

1、pyenv安装

1.1 更新源

[root@localhost ~]# yum update

1.2 安装git

[root@localhost ~]# yum -y install git

1.3 安装

[root@localhost ~]# git clone https://github.com/pyenv/pyenv.git ~/.pyenv

1.4 添加环境变量

echo 'export ROOT_HOME="/root"' >> ~/.bashrc

echo 'export PYENV_ROOT="$ROOT_HOME/.pyenv"' >> ~/.bashrc

echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc

echo 'eval "$(pyenv init -)"' >> ~/.bashrc

  • 补充:也可以将上面三条命令写入到~/.barsh_profile

# 配置立刻生效

[root@localhost ~]# source ~/.bashrc 

1.5 查看pyenv当前支持Python版本

[root@localhost ~]# pyenv install --list

2、python安装

2.1 安装依赖包

[root@localhost ~]# yum -y install libc6-dev gcc

[root@localhost ~]# yum -y install make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm

[root@localhost ~]# yum -y install zlib*       *必须装)

[root@localhost ~]# yum -y install readline readline-devel readline-static

[root@localhost ~]# yum -y install openssl openssl-devel openssl-static

[root@localhost ~]# yum -y install sqlite-devel

[root@localhost ~]# yum -y install bzip2-devel bzip2-libs

2.2 安装python

  • 直接安装:(太慢,不推荐)

[root@localhost ~]# pyenv install 3.6.4 -v   -v:以日志模式显示安装过程

  • 下载到本地,在进行安装:(推荐)

[root@localhost ~]# cd ~/.pyenv

[root@localhost ~]# mkdir temp_20200104

[root@localhost ~]# cd temp_20200104

[root@localhost ~]# wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tar.xz -P  ~/.pyenv/cache/

[root@localhost ~]# pyenv install 3.6.4 -v(没错,就是这样,跟在线安装一个命令,尴尬~

2.3 更新pyenv数据库

[root@localhost ~]# pyenv rehash

2.4 查看所安装的python版本

[root@localhost ~]# pyenv versions

2.5 切换python版本

[root@localhost ~]# pyenv global 3.6.4

2.6 删除指定python版本

[root@localhost ~]# pyenv uninstall 3.6.4

注意:

(1) 使用pyenv管理python,必须是用pyenv安装的python才行,系统以前有的,需要重新  用pyenv安装;

(2) 使用pip安装第三方模块时会安装到~/.pyenv/versions/xxx下,不会和系统模块发生冲突;

3、virtualenv安装

         virtualenv本身是一个独立的项目,用以隔离不同项目的工作环境。例如,项目A和项目B都是使用Python 2.7.13,但是,项目A需要使用Flask 0.8版本,项目B需要使用Flask 0.9版本。我们只要组合pyenv和virtualenv这两个工具,就能够构造Python和第三方库的任意版本组合,拥有了很好的灵活性,也避免了项目之间的相互干扰。

         virtualenv本身是一个独立的工具,用户可以不使用pyenv单独使用virtualenv。但是,如果你使用了pyenv,就需要安装pyenv-virtualenv插件而不是virtualenv软件来使用virtualenv的功能。

3.1 安装virtualenv

[root@localhost ~]# pip install virtualenv

# 如果提示版本不匹配,可以使用--upgrade参数

[root@localhost ~]# pip install --upgrade virtualenv

4、创建项目的虚拟环境

         一个项目创建一个virtualenv的虚拟环境,在这个环境中,可以用pip安装项目所需的库,不会影响其他项目。切记一个项目一个虚拟环境,否则可能会发生莫名的错误。

4.1 切换用户

[root@localhost versions]# useradd johnny

[root@localhost versions]# su johnny

执行命令:(发现还是默认的2.7.X,需要完成步骤:4.24.34.4,否则跳过)

[root@localhost versions]# python

Python 2.7.5 (default, Aug  7 2019, 00:51:29)

[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

4.2 添加用户环境变量

[johnny@localhost ~]$ echo ' export ROOT_HOME="/root""' >> ~/.bashrc

[johnny@localhost ~]$ echo 'export PYENV_ROOT="$ ROOT_HOME /.pyenv"' >> ~/.bashrc

[johnny@localhost ~]$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc

[johnny@localhost ~]$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc    (回车)

[johnny@localhost ~]$ source .bashrc

这个步骤很可能会报错,我的处理如下:

(1)把johnny这个用户加到root组中;

(2)根据报错,把涉及到的文件、文件夹,修改对应到读或者写权限。

4.3 添加用户到root组

[johnny@localhost ~]$ usermod -a -G root johnny      (-aappend-G:组

4.4 修改root用户目录权限

[johnny@localhost ~]$ su root

[root@localhost johnny]# cd ~

[root@localhost johnny]# chmod -R 755 .pyenv/

4.5 创建项目目录

[johnny@localhost ~]$ mkdir flask_project

[johnny@localhost ~]$ cd flask_project

4.6 创建虚拟环境

# 创建一个不带其他pip包的干净虚拟环境

[johnny@localhost ~]$ virtualenv --no-site-packages venv

Using base prefix '/root/.pyenv/versions/3.6.4'

New python executable in /root/myproject/venv/bin/python3.6

Also creating executable in /root/myproject/venv/bin/python

Please make sure you remove any previous custom paths from your /root/.pydistutils.cfg file.

Installing setuptools, pip, wheel...done.

4.7 切换到虚拟环境

[johnny@localhost ~]$ source venv/bin/activate

# 验证

(venv) [johnny@localhost flask_project]$ python

Python 3.6.4 (default, Jan  4 2020, 22:20:29)

[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux

Type "help", "copyright", "credits" or "license" for more information.

4.8 退出虚拟环境

(venv) [johnny@localhost flask_project]$ deactivate

发布了30 篇原创文章 · 获赞 7 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/u014722022/article/details/103838904