0%

终极 Python Project 管理方案:pipenv + autoenv

前言

使用过pip的同学都知道它的强大与方便,但学习的时候免不了安装各种各样的库,最后需要导出依赖的时候才发现无从下手,virtualenv便是为了解决此问题而诞生的,但若有很多项目,构建虚拟环境并手动切换,也是个繁琐的工作,好在有了更强大的解决方案:pipenv(项目依赖管理器)+autoenv(自动激活环境)。

演示环境

  • Arch Linux + zsh + python3 + pip3

pipenv

pipenv 是Kenneth Reitz编写的一个用于创建和管理Python虚拟环境的新工具

  • 安装

pip install pipenv --user #推荐安装到个人目录

  • 手动添加python的bin目录到$PATH变量中
1
2
3
4
5
6
7
python -m site --user-base                  #查看pip 安装路径
> /home/taoist/.local #这是我的路径

# 编辑 ~/.zshrc 在最后一行添加
export PATH=$PATH:/home/taoist/.local/bin #注意到bin

source ~/.zshrc #重新载入终端配置文件
  • 使用

    1
    2
    3
    mkdir test_project                  #新建一个空目录
    cd test_project
    pipenv install #创建一个新的虚拟环境
  • 安装

    1
    2
    pipenv install requests             #手动安装requests库
    pipenv install -r requirements.txt #根据requirements.txt 自动安装库依赖
  • 运行虚拟环境

    1
    2
    3
    pipenv run python xxx.py            #用虚拟环境运行 xxx.py 
    pipenv shell #激活shell虚拟环境
    exit #退出当前虚拟环境
  • 删除

    1
    2
    pipenv uninstall requests           #删除requests库
    pipenv --rm #移除此项目
  • 其他

    1
    2
    3
    pipenv graph                        #查看包依赖
    pipenv check #检查编码风格 与安全隐患
    pipenv lock -r #生成requirements.txt 文件

更多使用请参考官方文档

其他

  • 使用国内pypi镜像加速下载
    1
    2
    3
    4
    5
    6
    #编辑配置文件,更改url 使用豆瓣镜像
    vim Pipfile

    [[source]]
    url = "https://pypi.douban.com/simple"

  • 将venv环境文件放到当前目录,默认在用户目录
    1
    echo "export PIPENV_VENV_IN_PROJECT=1" >> ~/.zshrc
  • 开启zsh 对 pipenv 的自动补全功能
    1
    2
    echo  'eval "$(pipenv --completion)"' >> ~/.zshrc
    source ~/.zshrc
  • 自动激活虚拟环境,需要写入.env 文件
1
echo "pipenv shell" > .env  #将环境配置写入到 .env 文件中

autoenv

当您 cd 进入一个包含 .env 的目录中,就会 autoenv 自动激活那个环境。

  • 安装

pip install autoenv

1
2
3
4
#激活
echo "source `which activate.sh`" >> ~/.zshrc #zsh shell 激活autoenv

source ~/.zhsrc #重新载入配置
  • 使用
    配置完成,以后cd到项目目录后,就会自动激活虚拟环境了,如果是第一次进入,会提示你是否允许自动激活,输入 y ,回车确认即可。
    autoenv
    z

参考

欢迎关注我的其它发布渠道