导入带有网状结构的 arcpy

Importing arcpy with reticulate

我希望使用 reticulate 在 R 中导入 arcpy 库。

我在 R 中尝试了 运行 这段代码:

library(reticulate)
use_python("C:/Python27/ArcGIS10.4")
arcpy = import("arcpy")

这给了我一个错误:

Error in py_module_import(module, convert = convert) : 
  object 'arcpy' not found

我不完全确定 Python 如何找到它的模块(显然它搜索 PYTHONPATH,但我不知道这是在哪里定义的)。

我知道 arcpy 库实际上在不同的文件夹中。做了一些挖掘,我想我找到了,所以我在 R:

中尝试了这个
arcpy = import_from_path("arcpy", path = "C:/Program Files (x86)/ArcGIS/Desktop10.4/ArcPy/arcpy")

但出现以下错误:

Error in py_module_import(module, convert = convert) : 
  ImportError: cannot import name 'gp'

Detailed traceback: 
  File "C:/Program Files (x86)/ArcGIS/Desktop10.4/ArcPy\arcpy\__init__.py", line 22, in <module>
    from arcpy.geoprocessing import gp

所以我不太确定这里发生了什么,但我的印象是它与 Python 或 reticulate 没有在正确的位置寻找正确的文件有关?

尝试在 C:/Python27/ArcGIS10.4 中添加 Python.exe 文件的完整路径。另外,使用required = TRUE,所以reticulate知道它必须使用提供的python版本。

如果它直接驻留在该文件夹中,则

library(reticulate)

use_python("C:/Python27/ArcGIS10.4/Python.exe", required = TRUE)

arcpy <- import("arcpy")