Llame a Python desde R, para usar Arcmap requiere Python 26

Estoy tratando de ejecutar un script de python desde R. Lo cual es bastante fácil de hacer.

system('python Checkpythonverion.py')

archivo: Checkpythonverion.py

import sys
print (sys.version)

devoluciones:

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

Sin embargo, cuando ejecuto un código que llama al módulo arcpy (de arcgis)

Archivo: 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"

Retorno

system('python PythonScript.py') Rastreo (última llamada más reciente): archivo "PythonScript.py", línea 1, en import arcpy ImportError: ningún módulo llamado arcpy Mensaje de advertencia: el comando en ejecución 'python PythonScript.py' tenía estado 1

Sé la razón. El arcpy de Arcmap solo se ejecuta en python26. Entonces, el problema es cómo puedo cambiar la versión predeterminada de python llamada por el sistema. Probé varias cosas, entre ellas: cambiar HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

desde: C:\Python27\python.exe" "%1" %*

a: C:\Python26\ArcGIS10.0\python.exe" "%1" %*

Al mismo tiempo que cambia la variable ambiental del usuario "Ruta"

desde: C: \ Python27 \; C: \ Python27 \ Scripts

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

Después de lo cual de R:

>system('python Checkpythonverion.py')

todavía regresa:

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

¿Pensamientos? Sería genial si pudiera llamar a la versión de python que quería desde la línea de comando R. Por ejemplo system('python26 file.py'). Ejecutando: Windows 7, R 2.15.1 Instalado: Python 25,26,27

preguntado el 29 de junio de 12 a las 20:06

1 Respuestas

Ok, bueno, acabo de descubrirlo... bastante simple

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

devoluciones:

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

Respondido el 29 de junio de 12 a las 20:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.