如何处理环境中“必须存在”但无法安装的Python项目依赖?

问题描述 投票:0回答:1

我在 python 项目组织方面没有很多经验,但我一直在尝试使用 pyproject.toml 和结构来遵循现代最佳实践,如这个 video(减去 ci 位)。

这最终是ArcGIS Pro的地理处理工具,尽管我尝试从ArcGIS Pro的“后端”调用中抽象出该工具的逻辑,以便我将来可以创建其他后端,例如QGIS或geopandas和光栅。

但是,允许与 ArcGIS Pro 交互的

arcpy
模块并不是一个可以从 pypi 安装到环境中的模块。它只是“存在”在 ArcGIS Pro 安装提供的 conda 环境中。我一直在通过激活这个 conda env 来编写和运行脚本。我认为将
arcpy
列为
pyproject.toml
中的依赖项是行不通的,因为它无法安装。

遇到这种情况你会如何处理?最佳实践是什么?

注意:根据 esri 的

this 文档,
arcpy可能 可以通过 conda 安装。至少,我可以克隆 ArcGIS Pro 提供的默认环境并对其进行修改(以安装开发部门)。如前所述,我对 python 项目管理相当陌生(而且相当混乱),但是如果我在 pyproject.toml 中列出了我的 deps,生成了requirements.txt,然后将它们从requirements.txt 安装到 conda dev env 中,可能会那工作吗?

pip 可以在 conda 环境中看到

arcpy

PS> pip list Package Version --------------------------------- ----------------- anyio 3.5.0 appdirs 1.4.4 arcgis 2.2.0.1 ...
    
python pip conda arcpy pyproject.toml
1个回答
0
投票
遇到这种情况你会如何处理?最佳实践是什么?

因此您应该在您的

arcpy

 或要求中列出 
pyproject.toml

它只是“存在”在 ArcGIS Pro 安装提供的 conda 环境中

太棒了。因此,如果您列出依赖项,用户就会知道您需要 ArcGIS Pro 才能工作。

我尝试从 ArcGIS Pro 的“后端”调用中抽象出该工具的逻辑,以便我将来可以创建其他后端,例如 QGIS 或 geopandas 和 rasterio。

太好了,所以您正在制作

两个包。有一个“后端”在 ArcGIS Pro 之上实现一些接口。然后,该接口将在您所谓的不依赖于 ArcGIS Pro 的“前端”中注册。这两个包有不同的要求。 举一个现实生活中的例子,pyscada 项目有

https://github.com/pyscada/PyScada/blob/main/setup.py#L33

然后有带有单独的插件 https://github.com/pyscada /PyScada-BACnet/blob/main/setup.py#L33 依赖项。

© www.soinside.com 2019 - 2024. All rights reserved.