不知道怎么回事,Python 跟 ArcGIS断了联系,Model保存的py脚本无法运行。

我重新安装 numpy-1.0.3.win32-py2.5.exe  无效

首先是提示arcgisscripting无效

任意Model保存的脚本都有这个import arcgisscripting

在 Python ide中运行 >>> sys.path   没有'C:\\Program Files\\ArcGIS\\bin'这个路径 ,
不过这似乎没有关系,只需要在 model保存的脚本中
import arcgisscripting 之前先把这个路径引入
 sys.path.append('C:\\Program Files\\ArcGIS\\Bin')
但是运行脚本时 会提示: gp.Copy(……),gp.Clip(……)缺少这些对象,这都是ArcGIS自带的工具,
例如下面的这几句命令会提示缺少 Copy 对象
# Process: Copy...
gp.toolbox = "D:/交通气象监测产品/JTQXJC/JiaoTongQiXiangJC.tbx";
gp.Copy(Micaps1_Clip_shp, Micaps1ClipCopy1_shp, "")
这也可以解决,两种方式
一种方式:
# Process: Copy...
gp.toolbox = "management"  #实际上 在JiaoTongQiXiangJC.tbx 已经添加了这个Copy工具
gp.Copy(Micaps1_Clip_shp, Micaps1ClipCopy1_shp, "")
另一种方式:
# Process: Copy...
gp.copy_management(Micaps1_Clip_shp, Micaps1ClipCopy1_shp, "") #使用Copy工具真正的函数名。
我用的第一种方式,因为在ArcToolBox 的Index选项卡 每个工具后面都有一个括号,括号中的内容就是这个toolbox的类别,这要比到Help中查找函数全面方便多了。
问题已经勉强解决。

关于路径的问题,我在环境变量里找过,没看仔细,今天ESRI-bj的技术支持给我说有啊,这才看到,保存了环境变量 在py脚本里不用导入路径了,但是不能根据工具名直接调用工具的问题仍没有解决。

事实上,在 ArcGIS9.3和Python2.5环境下 就是这样子了。跟 ArcGIS9.2和Python2.4不同。

补充:20100107 

 

关键在这里,在9.3下,新建一个toolbox,在下面建立model时,如果用到系统自带的工具,直接拖放到model中即可,这样保存的Python脚本中调用的工具会自动加上所属的工具集名。我在建模时通常把用到的工具都拖到新建的toolbox下,这样建模保存的脚本中调用的工具不会自动添加所属的工具集名。93简化了模型的解释过程。

posted on 2010-01-02 23:00  秋波渡  阅读(2584)  评论(0编辑  收藏  举报