时髦的Python开发环境配置流程(pyenv + pipenv)

介绍

pyenv + pipenv是现在较为流行Python项目开发环境配置组合。支持多个Python版本切换,以项目为基础构建虚拟空间,使用方便。

pyenv 是什么?

pyenv 是 Python 版本管理工具。 pyenv 可以改变全局的 Python 版本,安装多个版本的 Python, 设置目录级别的 Python 版本,还能创建和管理 virtual python environments 。所有的设置都是用户级别的操作,不需要 sudo 命令。

pipenv 是什么?

Pipenv 是 Python 项目的依赖管理器。尽管pip可以安装Python包,但仍推荐使用Pipenv,因为它是一种更高级的工具,可简化依赖关系管理的常见使用情况。
主要特性包含:

  1. 根据 Pipfile 自动寻找项目根目录。
  2. 如果不存在,可以自动生成 Pipfile 和 Pipfile.lock。
  3. 自动在项目目录的 .venv 4.目录创建虚拟环境。(当然这个目录地址通过设置WORKON_HOME改变)
  4. 自动管理 Pipfile 新安装和删除的包。
  5. 自动更新 pip。

它们配合使用还是有坑的,具体会在配置流程中说明。

开发环境配置

1.安装git

新拿到机子,连git都没有...

#需要root权限
yum update
yum install git

2.安装pyenv

切到用户目录下

cd ~
git clone git://github.com/yyuu/pyenv.git .pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
exec $SHELL

如果shell是bash,就 >>.bashrc,zsh >>.zshrc
image.png-62.4kB
具体使用请见pyenv官方文档

3.安装Python

pyenv install 3.6.3 -v

报错:
image.png-26.9kB
一般来说,看到连接SSL error,这肯定是国内特有的情况,你懂的。
pyenv支持离线安装Python,log中有Python的资源url手动下载到$PYENV_ROOT/cache文件夹,cache不存在则自己新建。

cd $PYENV_ROOT
mkdir cache
wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz
or
scp 本地Python包 到服务器
pyenv install 3.6.3 -v

还是报错,log显示没走离线安装流程,还在尝试从python.org下载Python,这肯定是哪出了问题。

vi /home/app/.pyenv/plugins/python-build/share/python-build

image.png-51.9kB
image.png-15.9kB
注意,log提示下载.tgz,然而.tar.gz没有下载成功;

cd $PYENV_ROOT/cache
mv Python-3.6.3.tgz Python-3.6.3.tar.gz #改名

注意不要先解压缩再压缩,md5会改变导致安装失败。
再次安装:

pyenv install 3.6.3 -v
pyenv global 3.6.3
pyenv rehash

Python成功啦,同样道理,可以在本机多安装几个版本的Python以供切换

4.安装pipenv

pip install pipenv --user
export PATH="$HOME/.local/bin:$PATH"

如果pip安装很慢的话,也是国情原因,请切换pip源。
好了,可以使用pipenv了:
image.png-164.3kB
具体使用请见pipenv官方文档

5.创建虚拟环境

mkdir test_project
cd test_project
pipenv install --python 3.6.3
pipenv shell

image.png-91.6kB
如上图,在pipenv 命令后指定Python 3.6.3版,它自动的去找到我们pyenv安装的Python,软链起来,如果指定的版本我们没有安装,会报错,那我们去pyenv安装下。使用pipenv shell进入虚拟环境,类同于 Anaconda的 source activate environment 和virtualen的 source bin/activate

6.修改pip源

项目根目录下会看到2文件:Pipfile, Pipfile.lock,后者我们不要去动,会自动更新;
image.png-15.6kB
url替换为"https://mirrors.aliyun.com/pypi/simple"阿里源,看个人喜好。
这之后我们可以使用pipenv install * 给该项目安装指定package了

7.Pycharm绑定

项目开发过程中,我们会使用到Pycharm,2018.1版本之后它是默认支持pipenv的,打开项目工程会自动定位Pipfile文件,然后index第三方package,蛮方便的。具体配置见
image.png-38.9kB
image.png-51.9kB

生产环境配置

1.发布流程

2.package安装

3.集群统一安装

Comments
Write a Comment