嗨,我的朋友!
我将假设pip和virtualenv仍用于控制项目中的Python环境。
如果是这样,让我告诉您有关Pipenv之类的工具。
Pipenv是用于管理Python工作环境的现代工具。
Pipenv的主要功能:
- 创建和管理虚拟环境
- 安装和删除软件包期间的Pipfile软件包同步
- 从.env文件自动加载环境变量
作为一个很好的例子,比较使用pip和virtualenv与pipenv创建虚拟环境:
点和虚拟环境
$ virtualenv venv $ source venv/bin/activte $ pip install Flask gunicorn $ pip freeze > requirements.txt
吹牛
$ 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
使用Pipenv功能的Flask应用程序示例: github.com/fdhadzh/flask-pipenv-example 。