Igo*_*ejc 8 python python-ldap python-wheel 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 = "python-ldap"
Run Code Online (Sandbox Code Playgroud)
在 Poetry 中是否有另一种处理特定于平台的依赖项的方法?
Jac*_*ock 10
您可以使用platform关键字
python-ldap = [
{ version = '*', platform = 'linux' },
]
Run Code Online (Sandbox Code Playgroud)
rju*_*ney 10
执行此操作的最佳方法是将--platform选项与poetry add命令一起使用。faiss要在 Mac(faiss-cpu不支持 CUDA GPU)和 Linux(faiss-gpu支持 GPU/CUDA)上安装,请运行以下命令:
# Add each package to your project
poetry add faiss-gpu --platform linux
poetry add faiss-cpu --platform darwin
# Thereafter just install
poetry install
Run Code Online (Sandbox Code Playgroud)
如上所述,您可以pyproject.toml按照其他答案中的描述在文件中执行此操作,但 CLI 是最好的。poetry update如果直接编辑,请务必pyproject.toml:
[tool.poetry.dependencies]
faiss-cpu = {version = "^1.7.1", platform = "darwin"}
faiss-gpu = {version = "^1.7.1", platform = "linux"}
Run Code Online (Sandbox Code Playgroud)
哈喽!
| 归档时间: |
|
| 查看次数: |
1672 次 |
| 最近记录: |