跳转到主要内容

管理flit项目的venv

项目描述

flitenv

管理venvsflit项目的依赖项。

功能

  • 支持PEP 621中描述的最现代元数据格式。
  • 使用pip-tools锁定依赖项。
  • 每个项目支持多个venv,以确保环境的更好隔离。
  • 无供应商锁定,底层使用流行的良好维护的技术和工具无关格式。
  • 跨平台。
  • 经过实战检验。

安装

python3 -m pip install flitenv

使用

基础

  1. 项目将元数据存储在flit兼容的格式中,如flit文档中所述。推荐使用PEP 621中引入的新[project]部分。
  2. 项目直接需要的生产依赖项在dependencies列表中描述。此环境称为main
  3. 开发环境在[project.optional-dependencies]部分中描述。此类环境的良好示例是testlintdoc
  4. 对于每个环境,flitenv将在.venvs中创建一个单独的venv,以确保良好的隔离。
  5. “锁定文件”是一个文件,包含给定环境中项目所有依赖项的确切版本,包括传递依赖项。
  6. flitenv 使用由 requirements.txt 文件生成的 pip-tools 作为锁定文件。
  7. 建议只为 main 环境(仅此环境)生成锁定文件。
  8. flitenv 遵循 flit 哲学。它只提供最有帮助和最灵活的命令,你可以通过将它们与其他工具组合使用来做到任何你需要做的事情。

以下是一些用法示例。每个示例都使用 lint 作为目标环境,并使用 flake8 作为在这个环境中要运行的命令。

  • flitenv install lint:安装依赖项。如果虚拟环境不存在,则会创建。也可以在锁定文件已更改时用于升级依赖项。
  • flitenv run lint flake8:运行命令。如果虚拟环境不存在,则会创建,并安装依赖项。
  • flitenv lock lint:为环境生成锁定文件(requirements-lint.txt)。
  • flitenv main lock:为主环境生成锁定文件(requirements.txt)。如果没有特定环境的锁定文件,则使用此文件。
  • flitenv main lock -c ../other-project/requirements.txt:使用其他项目的锁定文件作为参考生成锁定文件。这确保了多个项目之间锁定文件的兼容性。
  • rm requirements.txt && flitenv main lock:升级锁定文件中的所有依赖项。
  • rm -rf .venvs/lint && flitenv install lint:重新创建虚拟环境。这有助于确保所有旧的依赖项。
  • flit build:为项目构建一个发行版。
  • flit install --symlink --python $(which python3.9) --deps=none:将项目符号链接到给定的 Python 解释器而不安装依赖项。如果你想在多个项目之间在 vscode 中有好的跳转到定义功能,这很有帮助。

由以下组织支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面