斯潘8
斯潘4
将使用ESRI的arcpy模块的python脚本添加到工作区是扩展工作台功能的一个很好的方法。因为python是Arcgis的默认脚本语言,如果您的机器上有一个有效的ARCGIS许可证,那么您可以使用python脚本中arcpy模块中的许多地理处理功能。您还可以使用ModelBuilder从模型创建python脚本。
然而,当运行试图使用arcpy模块的工作区时,用户可能会遇到以下错误消息:
python异常:没有名为arcpy的模块
下面提供一些故障排除建议,可能有助于解决无法在FME中导入arcpy的问题。
为了使用arcpy模块,您需要使用arcgis客户机安装的python解释器。这样做,在FME工作台中,转到工具>FME选项并单击翻译。在python解释器下,您将看到一个使用自定义python解释器的选项。单击浏览按钮将允许您导航到所需的解释器。
如果使用32位FME,arcgis python解释器的路径如下:
C:\windows\system32\python27.dll文件
如果使用64位FME,arcgis python解释器的路径如下:
C:\windows\sysw64\python27.dll文件
*重要的是要注意,如果将64位FME与ARCGIS(包括ARCPY)结合使用,您还需要有ESRI的64位后台地理处理模块。然而,我们强烈建议在使用arcpy时使用32位FME,因为32位FME和arcgis(32位应用程序)之间的兼容性更无缝,并提供更多arcpy功能。记得:如果将Arcgis升级到新版本,确保还升级了ESRI 64位后台地理处理模块。有关arcpy和64位的更多信息,请参阅ESRI博客.
关于python解释器的更详细的解释可以在这里找到:
在python空闲窗口中,输入以下命令:
>>>导入sys>>打印sys.path
这将打印出系统路径,并显示系统试图访问的python库/目录。
如果您的系统上安装了Arcgis 64位后台地理处理,python 2.7 64位库也将安装在您的系统上(即C:\python27\arcgisx6410.4)。这意味着64位库很可能首先出现在系统路径中。虽然稀有,有些情况下可能会出现混淆,并且当需要32位库时,FME会尝试加载64位库。如果你认为这可能是导致你的arcpy错误的原因,您可以尝试从系统中卸载64位后台地理处理模块。如果这不起作用,在尝试导入arcpy模块之前,可以尝试在python脚本中附加所需的32位库的系统路径(参见建议3)。在最后的努力中,您可以尝试手动编辑系统路径变量;然而,不建议这样做。
正如上面所说,导入arcpy错误可能是因为arcpy库尚未添加到path环境变量中。要解决这个问题,找到在下找到的desktopxx.x.pth文件C:\python27\arcgisxx.x\lib\site包(其中arcgis x x.x引用已安装的arcgis版本),并将其内容中指定的文件位置附加到“path”环境变量。取决于你的环境,您可能还需要添加C:\python27\arcgisxx.x\lib\site包和C:\\python27\\arcgisxx.x\\lib也。
示例脚本将开始如下:
import sys sys.path.append(“c:\\python27\\arcgis x x.x\\lib\\site packages”)sys.path.append(r'c:\Program Files(x86)\arcgis\desktopxx.x\arcpy”)sys.path.append(r'c:\Program Files(x86)\arcgis\desktopxx.x\arctoolbox\scripts')sys.path.append(r'c:\Program Files(x86)\arcgis\desktopxx.x\bin')sys.path.append(“c:\\python27\\arcgisxx.x\\lib”)imp
如果您安装了独立的python安装程序(与arcgis版本相同,即python 2.7)安装完arcgis客户机后,您将无意中覆盖了arcgis安装的python解释器(python27.dll),而fme需要与arcpy通信。
避免覆盖python解释器的一种可能方法是将arcgis安装的python27.dll从系统默认文件夹(即c:\windows\sysw64或c:\windows\system32)到安装arcgis python可执行文件的文件夹(即C:\python27\arcgisxx.x)。这必须在其他任何Python安装之前完成。然后,可以在不同的安装文件夹(即不是C:\python27)。在这里,然后,您需要通过将arcgis python27.dll设置为自定义解释器来指向该路径的移动位置。在python脚本中,在导入arcpy模块之前,需要系统路径附加所需的arcpy库(参见建议3)。
请注意,如果卸载独立版本,Arcgis的python解释器可能不再工作-您可能会收到“no module named site”错误。它可能需要手动从系统路径中删除旧解释器的残余部分,或者您可以重新安装独立版本的python(同样-不在c:\python27文件夹中)。
*注-同样适用于Arcgis Pro和Python 3.4。
当其他的都失败了,卸载所有独立的python安装,然后卸载并重新安装arcgis客户机可以恢复python实例,并允许fme使用arcpy模块。
你好,
我试图添加一个包括import arcpy的关闭脚本。即使我尝试了上面的所有过程,还是不行。FME返回以下错误。
前置条件在..\framework\engine\stfloginternal.cpp:499处失败。表达式:实例\!= Null PTR
为了解决这个问题,我发现了一个技巧,如果我在启动脚本中添加import arcpy并将相同的代码放入shut down脚本,FME将成功运行关机脚本,不会出现任何错误。
希望这能帮助所有其他程序员。
干杯,
艾米丽
?2019安全亚搏在线软件公司|合法的