0

0

Poetry 项目中如何确保依赖仅在 Windows 系统上安装

碧海醫心

碧海醫心

发布时间:2025-07-18 20:22:19

|

566人浏览过

|

来源于php中文网

原创

poetry 项目中如何确保依赖仅在 windows 系统上安装

本文详细介绍了在 Poetry 项目中如何确保特定依赖仅在 Windows 操作系统上安装。针对 distutils.util.get_platform() 返回 win-amd64 无法普适所有 Windows 版本的问题,教程指出使用 poetry add --platform=win32 命令是实现此目的的有效方法。尽管 win32 命名可能令人困惑,但它被 Poetry 识别为通用的 Windows 平台标识符,从而确保依赖在所有 Windows 版本上正确安装,同时避免在非 Windows 系统上尝试安装。

问题背景:跨平台依赖管理挑战

在 Python 项目开发中,尤其是在使用 Poetry 进行依赖管理时,经常会遇到需要为特定操作系统安装依赖的情况。例如,某个库可能只在 Windows 环境下可用,或者其功能仅在 Windows 上有意义。Poetry 提供了 --platform 参数来指定依赖的安装平台。

然而,在使用 distutils.util.get_platform() 获取平台标识时,Windows 系统通常返回如 win-amd64 这样的具体架构信息。这与 Linux 的 linux 或 macOS 的 darwin 等通用标识符不同,导致开发者困惑于如何指定一个能够覆盖所有 Windows 版本的通用平台标识符,而不是仅仅针对 win-amd64。

解决方案:使用 win32 作为通用 Windows 平台标识符

经过实践验证,Poetry 识别 win32 作为通用的 Windows 平台标识符,即使目标系统是 64 位 Windows。这意味着,当您希望某个依赖仅在任何 Windows 系统上安装时,应使用 --platform=win32 参数。

示例命令:

要将 your-package 依赖仅添加到 Windows 系统中,请执行以下 Poetry 命令:

AI发型设计
AI发型设计

虚拟发型试穿工具和发型模拟器

下载
poetry add your-package --platform=win32

执行此命令后,Poetry 会将 your-package 添加到项目的 pyproject.toml 文件中,并为其自动添加 platform = "win32" 环境标记。

pyproject.toml 中的体现:

在 pyproject.toml 文件中,该依赖的配置将类似于:

[tool.poetry.dependencies]
python = "^3.8"
your-package = { version = "^1.0.0", platform = "win32" }

这里的 platform = "win32" 是一个 PEP 508 环境标记(Environment Marker)。当 Poetry 解析 pyproject.toml 并安装依赖时,它会根据当前运行环境的平台信息评估这些标记。如果当前环境是 Windows(无论是 32 位还是 64 位),则 win32 标记为真,your-package 将被安装;否则,该依赖将被跳过。

注意事项

  1. win32 的含义: 尽管名称为 win32,但它在 Python 包管理和分发领域(包括 Poetry)中被广泛用作所有 Windows 版本的通用标识符,而不仅仅是特指 32 位 Windows 系统。这是历史遗留和兼容性考量的结果。
  2. 环境标记的强大: --platform 参数是 Poetry CLI 提供的便捷方式,其底层机制是利用 PEP 508 定义的环境标记。除了 platform 之外,环境标记还支持 os_name、sys_platform、python_version、extra 等多种条件,允许开发者根据更复杂的逻辑来控制依赖的安装。
  3. 验证安装: 在添加带有平台限制的依赖后,建议在不同的操作系统(例如 Windows 和 Linux)上运行 poetry install 或 poetry lock 来验证依赖是否按预期被包含或排除。

总结

在 Poetry 项目中,若要确保某个依赖仅在 Windows 操作系统上安装,最有效且推荐的方法是使用 poetry add --platform=win32 命令。Poetry 会将 win32 识别为通用的 Windows 平台标识符,并相应地在 pyproject.toml 中配置环境标记。这一方法简单直观,能够有效解决跨平台依赖管理的特定需求,确保项目依赖的正确性和环境的整洁性。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
mysql标识符无效错误怎么解决
mysql标识符无效错误怎么解决

mysql标识符无效错误的解决办法:1、检查标识符是否被其他表或数据库使用;2、检查标识符是否包含特殊字符;3、使用引号包裹标识符;4、使用反引号包裹标识符;5、检查MySQL的配置文件等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

206

2023.12.04

Python标识符有哪些
Python标识符有哪些

Python标识符有变量标识符、函数标识符、类标识符、模块标识符、下划线开头的标识符、双下划线开头、双下划线结尾的标识符、整型标识符、浮点型标识符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

313

2024.02.23

java标识符合集
java标识符合集

本专题整合了java标识符相关内容,想了解更多详细内容,请阅读下面的文章。

290

2025.06.11

c++标识符介绍
c++标识符介绍

本专题整合了c++标识符相关内容,阅读专题下面的文章了解更多详细内容。

174

2025.08.07

windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

1385

2023.07.26

查看端口占用情况windows
查看端口占用情况windows

端口占用是指与端口关联的软件占用端口而使得其他应用程序无法使用这些端口,端口占用问题是计算机系统编程领域的一个常见问题,端口占用的根本原因可能是操作系统的一些错误,服务器也可能会出现端口占用问题。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

1159

2023.07.27

windows照片无法显示
windows照片无法显示

当我们尝试打开一张图片时,可能会出现一个错误提示,提示说"Windows照片查看器无法显示此图片,因为计算机上的可用内存不足",本专题为大家提供windows照片无法显示相关的文章,帮助大家解决该问题。

830

2023.08.01

windows查看端口被占用的情况
windows查看端口被占用的情况

windows查看端口被占用的情况的方法:1、使用Windows自带的资源监视器;2、使用命令提示符查看端口信息;3、使用任务管理器查看占用端口的进程。本专题为大家提供windows查看端口被占用的情况的相关的文章、下载、课程内容,供大家免费下载体验。

460

2023.08.02

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

4

2026.03.04

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 10.1万人学习

Git 教程
Git 教程

共21课时 | 4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号