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)]
ただし、(arcgisから)arcpyモジュールを呼び出すコードを実行すると
ファイル: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')トレースバック(最後の最後の呼び出し):インポートarcpyのファイル "PythonScript.py"、1行目ImportError:arcpyという名前のモジュールがありません警告メッセージ:実行中のコマンド'pythonPythonScript.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)]
考え?Rコマンドラインから必要なバージョンのPythonを呼び出すことができれば素晴らしいと思います。たとえば、system('python26 file.py')。実行中:Windows 7、R 2.15.1インストール済み:Python 25、26、27