从 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打开属性表的时候出现:“不能从数据源中加载数据,如果你能改正错误,按刷新按钮重新加载数据