相关疑难解决方法(0)

Python Poetry:如何指定特定于平台的依赖项替代方案?

一些背景: 我正在从事的项目使用python-ldap库。由于我们是一个混合操作系统开发团队(一些使用 Linux,一些使用 macOS 和一些 Windows),我试图让项目在所有环境中构建。不幸的是,python-ldapWindows 没有正式支持,但有由 Christoph Gohlke 维护的非官方轮子。我已经测试了轮文件,它工作正常。

问题:我如何告诉 Poetry 在 Windows 上使用轮子以及python-ldap在 Linux 和 macOS 上使用官方包?

我尝试了多种方法,包括使用多个约束依赖项和标记

python-ldap = [
    { markers = "sys_platform == 'linux'", version = "*" },
    { markers = "sys_platform == 'win32'", path="lib/python_ldap-3.2.0-cp36-cp36m-win_amd64.whl" }
Run Code Online (Sandbox Code Playgroud)

......但是,从判断poetry.lock文件,似乎再标记合并,只是确定是否库应安装在所有

[[package]]
category = "main"
description = "Python modules for implementing LDAP clients"
marker = "sys_platform == \"linux\" or sys_platform == \"win32\""
name = …
Run Code Online (Sandbox Code Playgroud)

python python-ldap python-wheel python-poetry

8
推荐指数
2
解决办法
1672
查看次数

pypi依赖项中的“额外”是什么?

requires_distpypi的json响应中,给出:

requires_dist : [
    "bcrypt; extra == 'bcrypt'",
    "argon2-cffi (>=16.1.0); extra == 'argon2'"
]
Run Code Online (Sandbox Code Playgroud)

谁能说清楚每个相关的第二份声明,extra == 'bcrypt'extra == 'argon2'

python pip pypi python-packaging

5
推荐指数
1
解决办法
388
查看次数