使用Pipenv进行Python环境管理

嗨,我的朋友!


我将假设pip和virtualenv仍用于控制项目中的Python环境。


如果是这样,让我告诉您有关Pipenv之类的工具。


Pipenv是用于管理Python工作环境的现代工具。


Pipenv的主要功能:


  • 创建和管理虚拟环境
  • 安装和删除软件包期间的Pipfile软件包同步
  • 从.env文件自动加载环境变量

作为一个很好的例子,比较使用pip和virtualenv与pipenv创建虚拟环境:


  1. 点和虚拟环境


    $ virtualenv venv $ source venv/bin/activte $ pip install Flask gunicorn $ pip freeze > requirements.txt 

  2. 吹牛


     $ pipenv install Flask gunicorn 


开始使用


安装最新版本的pipenv:


 $ pip install pipenv 

工作环境管理


让我们转到Python项目的目录,并创建一个指定解释器版本的虚拟环境:


 $ cd yourproject $ pipenv --python 3.7 

如果您的项目尚不存在,团队将自动为其创建一个新的虚拟环境。


您可以通过执行shell命令来激活项目的虚拟环境:


 $ pipenv shell 

要退出虚拟环境外壳程序,请使用exit


 $ exit 

应用依赖管理


要安装软件包,请使用install命令:


 $ pipenv install Flask 

Pipenv将安装最新版本的Flask软件包,并将其自动添加到Pipfile中。


在安装期间,我们可以指定软件包的特定版本:


 $ pipenv install Flask==1.0.2 

该工具的开发人员还负责与开发环境(组装或测试应用程序阶段所需的软件包)一起使用。


如果指定--dev标志,则该软件包将作为开发环境的一部分安装:


 $ pipenv install pytest --dev 

要安装所有软件包,包括开发环境软件包,必须运行:


 $ pipenv install --dev 

要卸载软件包,有一个uninstall命令:


 $ pipenv uninstall Flask 

有关已安装软件包及其依赖性的信息存储在Pipfile.lock文件中,该文件是自动生成的,用户不应更改。


运行源代码


可以在virtualenv shell中运行源代码:


 $ pipenv run python yourapplication.py 

如果存在.env文件,则$ pipenv shell$ pipenv run命令将自动从中加载环境变量:


 $ cat .env DEBUG=1 $ echo $DEBUG 1 

应用部署


Pipenv允许您通过指定--system标志在父系统上安装依赖项:


 $ pipenv install --system 

在将应用程序部署到Docker时,这很有用。


如果指定--deploy标志,则不建议使用Pipfile.lock或Python版本与指定的版本不匹配,pipenv将引发错误。


使用pipenv的Dockerfile示例:


 FROM python:3.7 RUN pip3 install pipenv WORKDIR /usr/src/app COPY Pipfile ./ COPY Pipfile.lock ./ RUN set -ex && pipenv install --deploy --system COPY . . 

使用Pipenv功能的Flask应用程序示例: github.com/fdhadzh/flask-pipenv-example

Source: https://habr.com/ru/post/zh-CN413009/


All Articles