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.9k Star开源神器,让你的安卓手机化身荒野求生利器!

1.9k Star开源神器,让你的安卓手机化身荒野求生利器!

无需网络,功能强大!这款开源 Android 应用助你在野外安全无忧 项目地址: https://github.com/kylecorry31/Trail-Sense Trail Sense 是一款强大的开源 Android 应用,旨在利用你手机的传感器来辅助你在野外徒步旅行或应对生存场景。 最重要的是,它完全设计为离线使用,无需担心网络连接问题! 这款应用的功能非常丰富,可以满足你在野外环境中的各种需求: * 导航定位: 你可以设置信标并导航到它们,跟随路径,甚至可以使用照片作为地图。 * 安全保障: 通过回溯功能,你可以轻松地原路返回,避免迷路。日落警报功能可以提前提醒你日落时间,让你有足够的时间准备。 * 生存辅助: 应用内置手电筒功能,方便你在黑暗环境中照明。此外,还可以预测天气,帮助你做好应对准备。 Trail Sense 的主要特点: * 完全离线使用: 无需网络连接,所有功能均可使用。 * 功能丰富: 涵盖导航、安全、生存等多个方面,满足你在野外环境中的各种需求。 * 利用手机传感器:

By majichen
9.6k Star开源神器:让你的Mac状态栏更强大!

9.6k Star开源神器:让你的Mac状态栏更强大!

告别简陋,Eul让你的macOS状态栏焕发新生,实时掌控系统状态! 项目地址: https://github.com/gao-sun/eul Eul 是一款用 SwiftUI 编写的 macOS 状态栏应用,旨在提供简洁美观的系统监控信息展示。它完美兼容 Dark Mode,并为 macOS Big Sur 提供了开箱即用的精美小组件。如果你厌倦了 macOS 原生状态栏的简陋和信息匮乏,Eul 绝对能满足你对美观和实用性的双重追求。 Eul 的亮点: * 深色模式兼容: 无缝适配 macOS 的深色模式,保证视觉体验的一致性。 * Big Sur 小组件: 为 macOS Big Sur 专门设计的小组件,与系统风格完美融合。 * 蓝牙电池电量: 实时显示蓝牙设备的电池电量,再也不用担心设备突然没电了。 * SwiftUI 编写:

By majichen
42.6k Star开源神器,eDEX-UI,打造你的科幻终端

42.6k Star开源神器,eDEX-UI,打造你的科幻终端

体验未来科技感:一款炫酷的跨平台终端模拟器与系统监控器 项目地址: https://github.com/GitSquared/edex-ui eDEX-UI 是一款全屏、跨平台的终端模拟器和系统监控器,其外观和感觉就像一个科幻电影中的电脑界面。 深受电影《创:战纪》(TRON Legacy) 的视觉效果启发,特别是董事会议那段场景,eDEX-UI 项目最初的目标是做一个 “DEX-UI”,但减少一些“艺术性”,增加更多“可分发的软件”的特性。 在保持未来感的同时,eDEX-UI 努力维持一定程度的实用性,使其能够在现实场景中使用,更大的目标是将科幻用户体验带入主流。 它可能只是一个被认真对待的玩笑。 主要特点: * 全功能终端模拟器: 支持选项卡、颜色、鼠标事件,以及 curses 和类 curses 的应用程序。 * 实时系统监控: 监控 CPU、内存、交换空间、进程以及网络 (GeoIP、

By majichen
64.4k Star开源神器,告别频繁提交,本地运行GitHub Actions,效率翻倍!

64.4k Star开源神器,告别频繁提交,本地运行GitHub Actions,效率翻倍!

还在为测试GitHub Actions反复提交?Act让你在本地轻松预览,告别低效! 项目地址: https://github.com/nektos/act Act 是一款能够让你在本地运行 GitHub Actions 的开源神器! 拥有 64.4k 的 Star,它解决了开发者需要频繁 commit/push 才能测试 GitHub Actions 的痛点。 使用 Act,你可以直接在本地运行 GitHub Actions,快速获得反馈,极大地提升开发效率。 Act 的核心优势在于: * 快速反馈: 无需每次修改都 commit/push,直接在本地运行 workflow 文件,即时查看效果。 * 本地任务执行器: 将 GitHub Actions 作为本地任务执行器,替代

By majichen