从 R 调用 Python,使用 Arcmap 需要 Python 26

Posted

技术标签:

【中文标题】从 R 调用 Python,使用 Arcmap 需要 Python 26【英文标题】:Call Python from R, to use Arcmap requires Python 26 【发布时间】:2012-06-29 19:07:38 【问题描述】:

我正在尝试从 R 运行 python 脚本。这很容易做到。

system('python Checkpythonverion.py')

文件:Checkpythonverion.py

import sys
print (sys.version)

返回:

2.7.2 |EPD 7.1-2 (64-bit)| (default, Jul  3 2011, 15:34:33) [MSC v.1500 64 bit (AMD64)]

但是,当我运行调用 arcpy 模块(来自 arcgis)的代码时

文件:Pythoncode.py

import arcpy
arcpy.env.workspace = r"C:\Student\PythonDesktop10_0\Data\Westerville.gdb"
fc = "Streets"
distanceList = ["100 meters", "200 meters", "400 meters"]
for dist in distanceList:
    outName = fc+"_"+ dist[1]
    arcpy.Buffer_analysis(fc,outName,dist)
    print " Finished Buffer"

返回

system('python PythonScript.py') 回溯(最近一次通话最后): 文件“PythonScript.py”,第 1 行,在 导入 arcpy ImportError:没有名为 arcpy 的模块 警告信息: 运行命令“python PythonScript.py”的状态为 1

我知道原因。 Arcmap 的 arcpy 只在 python26 中运行。那么问题是如何更改系统调用的python的默认版本。我尝试了很多方法,包括:更改 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

来自: C:\Python27\python.exe" "%1" %*

收件人: C:\Python26\ArcGIS10.0\python.exe" "%1" %*

同时更改用户环境变量“Path”

来自: C:\Python27\;C:\Python27\Scripts

到: C:\Python26\ArcGIS10.0\;C:\Python27\Scripts

之后来自R:

>system('python Checkpythonverion.py')

仍然返回:

2.7.2 |EPD 7.1-2 (64-bit)| (default, Jul  3 2011, 15:34:33) [MSC v.1500 64 bit (AMD64)]

想法?如果我可以从 R 命令行调用我想要的 python 版本,那就太好了。例如系统('python26 file.py')。 正在运行:Windows 7、R 2.15.1 已安装:Python 25,26,27

【问题讨论】:

【参考方案1】:

好吧,只是想通了...很简单

system('C:\\Python26\\ArcGIS10.0\\python.exe Checkpythonverion.py')

返回:

2.6.5 (r265:79096, Mar 19 2010, 21:48:26) [MSC v.1500 32 bit (Intel)]

【讨论】:

以上是关于从 R 调用 Python,使用 Arcmap 需要 Python 26的主要内容,如果未能解决你的问题,请参考以下文章

R 将所需变量从 ODBC/HANA 连接传递到 sql 语句

arcmap不通过服务切片

从 python 调用的 R 包 - 错误

arcmap打开属性表的时候出现:“不能从数据源中加载数据,如果你能改正错误,按刷新按钮重新加载数据

如何使用PYTHON 向arcmap中加载shapefile 不是即时python窗口

如何用arcmap发布地图服务