安装pyenv
安装git 和 curl
因为我们要用它从 github 上下载pyenv软件,首先确保我们已经安装了 git 和 curl 工具
yum install -y git
yum install -y curl
下载pyenv软件
pyenv 提供了 一个 下载器,直接在当前用户目录下执行以下git命令下载
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
这是一个执行脚本文件,如果直接执行错误,可以使用浏览器访问这个地址,拷贝文件内容到服务器中的一个新建文件中,然后使用bash执行这个文件即可。
配置环境变量
安装pyenv 后,为直接使用 pyenv 命令执行pyenv 工具,需要添加 环境变量。为优先匹配用户目录下的工具,将环境变量配置在系统环境之前。下载完成后会提示配置环境变量,在 ~ /.bashrc 或者 .bash_profile 下写入以下信息,添加环境变量(若无该文件创建)
export PATH="$HOME/.pyenv/bin:$PATH" // 拼接 PATH = 目录 + :$PATH eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)"
执行 source .bashrc 或 .bash_profile 重载配置
pyenv 的使用
执行pyenv,或 pyenv -- help 显示以下信息
commands List all available pyenv commands
local Set or show the local application-specific Python version global Set or show the global Python version shell Set or show the shell-specific Python version install Install a Python version using python-build uninstall Uninstall a specific Python version rehash Rehash pyenv shims (run this after installing executables) version Show the current Python version and its origin versions List all Python versions available to pyenv which Display the full path to an executable whence List all Python versions that contain the given executable
安装python
安装python 编译依赖
pyenv 安装python 需要下载原文件编译安装,所以需要确保系统安装编译时相关的依赖包,使用root 用户安装以下包
yum -y install gcc make patch gdbm-devel openssl-devel sqlite-devel readline-devel zlib-devel bzip2-deve
网络安装python
使用pyenv 将会从Python 官网下载 对应版本的安装包,速度较慢
pyenv install --list 查看可下载的包 pyenv install 3.6.9 -v 下载 3.6.9 版本
该命令会从github上下载python的源代码,并解压到/tmp目录下,然后在/tmp中执行编译工作。若依赖包没有安装,则会出现编译错误,需要在安装依赖包后重新执行该命令。
本地安装
执行这一步时会在.pyenv/cache中查看是否有该压缩包,没有则去下载并上传至该文件夹下,否则直接用该包直接安装。可以提前下载 python 源码压缩包,放置于 ~/ .pyenv/cache 文件夹下, 再执行
pyenv install 3.6.9 -v #必须与cache中python包版本号相同, 否则未找到将网络下载
python版本控制及虚拟环境
可以使用pyenv 直接安装多个版本的python,安装成功后查看当前用户可使用的python 版本
pyenv versions 将显示已安装的独立的版本(包括创建的虚拟环境)
几种布置形式:
- global
当前用户的全局环境, 该用户所有文件目录(除虚拟环境),已开启的shell中 的python 版本都将立刻切换
pyenv global 3.6.9
- shell
当前shell 中的python环境, 其余下 shell 不受影响,关闭该shell 将失效。
- local
当前环境 shell 环境生效,已开启的 shell不受影响,关闭后重启 shell 不会失效,将一直为此版本python。
多版本控制虚拟环境
1. 创建一个虚拟环境,指定python版本和名称
pyenv virtaulenv 3.6.9 env1 3.6.9版本的 env1 环境 pyenv virtualenv 3.6.9 env2 3.6.9版本的 env2 环境
2. 布置该虚拟环境
创建项目文件夹,在该项目文件夹下配置python虚拟环境:
pyenv local myproject1 env1 // 在 myproject下部署虚拟环境 env1
一个虚拟环境布置到一个项目文件夹下即可,该文件夹下所有目录将使用该环境。同时执行多个项目时候,各个项目使用不同虚拟环境,虚拟环境之间互不影响,杜绝了多个项目之间第三方模块冲突 ,部署项目时,只需要服务器端部署相同的python环境,根据打包的 requierments 包版本文件安装第三方模块, 就能创建出运行环境。
pip 源配置
- 配置文件
新建文件 ~/ pip / pip.conf 写入,配置阿里云安装路径
[global] index-url = https://mirrors.aliyun.com/pypi/simple/ [install] trusted-host=mirrors.aliyun.co
- 打包python库
pip freeze > pip-package 导出一个需求包文件 pip install -r pip-package 根据文件中的包名信息安装