33.5k Star开源神器:让Python依赖管理从此轻松!

33.5k Star开源神器:让Python依赖管理从此轻松!

告别繁琐,Poetry以优雅的方式管理你的Python项目依赖

项目地址: https://github.com/python-poetry/poetry

Poetry 是一款用于声明、管理和安装 Python 项目依赖的工具,它可以确保你在任何地方都拥有正确的堆栈。它旨在取代传统的 setup.pyrequirements.txtsetup.cfgMANIFEST.inPipfile,取而代之的是一个简单的基于 pyproject.toml 的项目格式。

Poetry 解决了什么痛点?

  • 依赖管理复杂: 传统方式需要手动维护多个文件,容易出错且难以管理。Poetry 将所有依赖信息集中在 pyproject.toml 文件中,方便管理和维护。
  • 版本冲突: 不同的项目可能依赖于相同库的不同版本,容易导致冲突。Poetry 可以自动解决版本冲突,确保项目依赖的稳定性。
  • 环境一致性: 在不同的开发环境和部署环境之间保持依赖一致性是一个挑战。Poetry 通过锁定依赖版本,确保在任何环境中都能复现相同的依赖关系。

Poetry 有什么创新之处?

  • 基于 pyproject.toml 采用 PEP 518 标准,使用 pyproject.toml 文件作为项目配置文件,符合行业趋势。
  • 依赖分组: 支持依赖分组,可以将开发依赖、文档依赖等进行分组管理,方便安装和卸载。
  • 插件系统: 拥有丰富的插件生态系统,可以扩展 Poetry 的功能,例如导出 requirements.txt 文件、打包到虚拟环境等。

pyproject.toml 示例:

[tool.poetry]
name = "my-package"
version = "0.1.0"
description = "The description of the package"

license = "MIT"

authors = [
    "Sébastien Eustace <sebastien@eustace.io>"
]

repository = "https://github.com/python-poetry/poetry"
homepage = "https://python-poetry.org"

# README file(s) are used as the package description
readme = ["README.md", "LICENSE"]

# Keywords (translated to tags on the package index)
keywords = ["packaging", "poetry"]

[tool.poetry.dependencies]
# Compatible Python versions
python = ">=3.8"
# Standard dependency with semver constraints
aiohttp = "^3.8.1"
# Dependency with extras
requests = { version = "^2.28", extras = ["security"] }
# Version-specific dependencies with prereleases allowed
tomli = { version = "^2.0.1", python = "<3.11", allow-prereleases = true }
# Git dependencies
cleo = { git = "https://github.com/python-poetry/cleo.git", branch = "main" }
# Optional dependencies (installed by extras)
pendulum = { version = "^2.1.2", optional = true }

# Dependency groups are supported for organizing your dependencies
[tool.poetry.group.dev.dependencies]
pytest = "^7.1.2"
pytest-cov = "^3.0"

# ...and can be installed only when explicitly requested
[tool.poetry.group.docs]
optional = true
[tool.poetry.group.docs.dependencies]
Sphinx = "^5.1.1"

# Python-style entrypoints and scripts are easily expressed
[tool.poetry.scripts]
my-script = "my_package:main"

总结:

Poetry 通过简洁的配置、强大的依赖管理和丰富的插件生态,极大地简化了 Python 项目的依赖管理流程。 无论是个人开发者还是团队协作,Poetry 都能显著提升开发效率。

怎么样,看完这个项目是不是觉得很棒? 这个项目对于 Python 开发者来说非常有用! 快来转发给你的朋友们一起学习使用吧!

Read more

1.7k Star开源神器:Keyboard Cowboy - 助你成为 macOS 效率牛仔!

1.7k Star开源神器:Keyboard Cowboy - 助你成为 macOS 效率牛仔!

告别繁琐操作,用这款神器驯服你的 Mac,让效率飙升! 项目地址: https://github.com/zenangst/KeyboardCowboy Keyboard Cowboy 是一款专为 macOS 设计的效率工具,旨在通过自动化操作,简化复杂任务,让你像一位真正的牛仔一样掌控你的 Mac。无需再将手从键盘上移开,即可完成各种操作! Keyboard Cowboy 支持 macOS v13.0+。它通过以下方式提升你的效率: * 自动化工作流: 通过应用上下文触发器,你可以设置响应各种条件的工作流,例如应用程序的打开、关闭或切换。一旦创建了工作流,它将自动运行,无需任何键盘快捷键或手动干预。 * 功能键绑定: 将常用命令绑定到功能键,极大地简化程序员和高级用户的工作流程。 * 简化复杂任务: 自动化重复性动作、启动应用程序和脚本、控制系统设置、操作文件和文件夹,所有这些都可以通过键盘完成。 核心功能和特点: * Groups(群组): 灵活易用,方便管理你的命令。

By majichen
1.7k Star开源神器:Tabiew - 命令行下的数据分析利器,让你的数据一览无余!

1.7k Star开源神器:Tabiew - 命令行下的数据分析利器,让你的数据一览无余!

告别繁琐工具,Tabiew助你轻松玩转 CSV、Parquet等多种格式数据,还能用SQL查询! 项目地址: https://github.com/shshemi/tabiew Tabiew 是一款轻量级的 TUI (终端用户界面) 应用程序,旨在帮助用户更方便地查看和查询表格数据文件,支持 CSV、Parquet、Arrow 等多种格式。 告别笨重的 GUI 工具,在命令行下也能拥有高效的数据浏览和分析体验。 Tabiew 的亮点: * Vim 风格的键位绑定: 如果你熟悉 Vim,那么 Tabiew 你可以快速上手,操作更加高效。 * 强大的 SQL 支持: 可以直接使用 SQL 语句查询数据,筛选、排序、统计,不在话下。 使用 Q SELECT * FROM

By majichen
16.0k Star开源神器:命令行交互式速查表,解放你的记忆力!

16.0k Star开源神器:命令行交互式速查表,解放你的记忆力!

告别死记硬背,用 Navi 轻松掌握各种命令,成为命令行大师! 项目地址: https://github.com/denisidoro/navi Navi 是一款交互式的命令行速查表工具,它能帮你浏览和执行命令,而无需死记硬背。你可以自己编写速查表,也可以从维护者那里下载。参数的建议值会动态地显示在一个列表中,极大地提升了效率。 Navi 的优势: * 无需牢记所有 CLI 命令 * 无需复制粘贴中间命令的输出 * 减少输入 * 学习新的单行命令 Navi 在底层使用 fzf 或 skim,可以作为命令或 shell 部件(类似于 Ctrl-R)使用。 安装方式: 推荐使用以下命令安装 Navi: brew install navi Navi 可以通过多种包管理器安装,支持的平台非常广泛,包括但不限于: * macOS (通过

By majichen
16.2k Star开源神器:你的终端信息仪表盘,效率提升不止一点!

16.2k Star开源神器:你的终端信息仪表盘,效率提升不止一点!

告别频繁切换!WTF将你需要的关键信息汇聚于终端,一目了然! 项目地址: https://github.com/wtfutil/wtf WTF (又名 'wtfutil') 是你的个人终端信息仪表盘,让你能够一目了然地访问那些非常重要但又不常用的统计数据。 想象一下,无需打开多个网页或应用程序,只需在终端中就能掌握所有关键信息,效率直接拉满! WTF已被全球数千名开发者和技术人员使用,它是免费且开源的。 WTF能为你做什么? * 集中显示信息: 将各种来源的数据整合到一个终端界面中。 * 高度可定制: 通过配置文件灵活添加和配置模块。 * 提升效率: 告别在不同应用间切换,快速获取所需信息。 支持平台: WTF 可以在以下平台运行: * macOS (通过 Homebrew 或 MacPorts 安装) * Linux (通过源码安装) * Docker 特色模块: WTF 通过模块化的方式集成各种服务和信息。以下是一些热门模块,助你快速上手: * DigitalOcean: 监控你的 DigitalOcean

By majichen