0

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

4

1 に答える 1

0

わかりました、それを理解しました...かなり単純です

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)]
于 2012-06-29T19:28:19.783 に答える