Я пытаюсь запустить скрипт python из R. Это достаточно легко сделать.
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') Traceback (последний вызов последним): файл «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 "% *
При изменении пользовательской переменной окружения "Путь"
от: 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)]
Мысли? Было бы здорово, если бы я мог вызвать нужную мне версию python из командной строки R. Например, system ('python26 file.py'). Запуск: Windows 7, R 2.15.1 Установлено: Python 25,26,27