Python版本环境管理

前言

在实际的python开发生产环境中,每个工程项目一般使用的python版本或者环境是不同的,需要一套合适的python版本环境管理工具。

接下来是对python版本管理工具的一些理解和简单介绍。

工具对比

工具简介
virtualenv管理同一python版本的不同开发环境,属于python的一个工具包。
pyenv管理系统python版本,同一个系统,python多版本共存,可以方便的切换系统默认python环境。其中有一个pyenv-virtualenv工具,和virtualenv作用雷同。如果要创建虚拟环境,更好的方式是使用python -m venv myvenv
condaanaconda,miniconda。管理python版本,与pyenv不同的是,conda使用虚拟环境管理python版本,同时有python包管理功能。其中集成了科学计算相关的包。

其中Pyenv,除了可以安装Python版本,还可以安装anaconda,miniconda等工具。

使用

Pyenv(推荐)

推荐使用pyenv + python -m venv,也可以使用pyenv + virtualenv。

pyenv管理python版本;
每个python版本中创建虚拟环境的常用方式有两种:
1、直接使用python -m venv myvenv创建该python版本的虚拟环境。
2、安装并使用virtualenv创建该python版本的虚拟环境。

Anaconda

Anaconda,使用用户界面创建虚拟环境和查看虚拟环境列表比较方便。但是部分python包兼容性不太好。

Linux系统下使用 conda activate <env_name> 切换虚拟环境,使用用户界面或者pip管理环境中的python包。

pyenv

安装

参考 Pyenv Installation

主要安装步骤

1、选择安装目录,推荐**$HOME/.pyenv**,执行命令:git clone https://github.com/pyenv/pyenv.git ~/.pyenv

2、设置环境变量**PYENV_ROOT**,执行命令:
CentOS / Mac OS X

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile

Ubuntu

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

3、增加pyenv init到你的shell,命令:
CentOS / Mac OS X

echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.bash_profile

Ubuntu

echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.bashrc

4、重启shell,使改变生效:exec "$SHELL"

5、安装Python构建依赖,执行命令:
Mac OS X

brew install openssl readline sqlite3 xz zlib

CentOS

yum install gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk-devel libffi-devel wget

Ubuntu

sudo apt-get update
sudo apt-get install --no-install-recommends make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev

6、安装Pthon版本到**$(pyenv root)/versions**,例如安装python3.7.6:pyenv install 3.7.6

pyenv安装时,下载过程缓慢或者无法连接下载服务器,可去 Python官网下载页 将需要的python版本源码tar包下载到$PYENV_ROOT/cache/ 目录下,然后再执行pyenv install。

常用命令

参考 Pyenv COMMAND

以下是生产环境常用的命令:

命令描述
pyenv commands查看有效的pyenv命令。
pyenv local为当前目录设置指定的Python版本。
pyenv version查看当前活跃的Python版本,以及其设置信息。
pyenv versions查看以安装的Python版本,带*的是当前活跃的Python版本
pyenv install安装一个Python版本。-l/--list列出有效的Python版本。

创建虚拟环境

方式一:python自带工具(推荐)

使用python -m venv myvenv可以创建该python版本的虚拟环境。
同时创建多个虚拟环境示例:

python -m venv myvenv1 myvenv2

激活虚拟环境:

source myvenv1/bin/activate

方式二:virtualenv

参考 Virtualenv Docs

安装

sudo pip install virtualenv

使用

基础命令:virtualenv ENV

上述命令会在当前目录创建Python虚拟环境。

以创建虚拟环境 venv为例

1、创建:virtualenv venv

2、激活环境:source /path/to/venv/bin/activate

3、退出环境:deactivate

其他

默认情况,Python虚拟环境的核心包是以软链的形式存在,与其参照的基础Python版本环境文件强相关。
如果想要创建完全独立的Python虚拟环境,还是自己编译一个Python版本吧。

使用pip安装python包的时候,使用国内镜像源会比较块。我平时使用清华提供的镜像源,使用方法参考 pypi 镜像使用帮助

生产环境使用

Hadoop,Spark等大数据平台环境。

Pyenv安装在/opt/.pyenv。如果放在某个用户的home目录下,其他用户使用依赖其创建的虚拟环境时,有问题。

虚拟环境安装在/opt/virtualenv。

1、使用Pyenv创建需要的Python版

2、在使用的Python版本下,使用python -m venv创建需要的Python工程环境

3、将Pyenv安装的Python版本环境和创建的虚拟环境,都分发到所有的worker节点,并保持其绝对路径一致

4、在PySpark任务的spark-submit提交命令中指定需要的Python工程环境

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值