西班牙
斯潘4
将使用esri的arcpy模块的python脚本添加到工作区是扩展workbench功能的一个好方法。由于python是arcgis的默认脚本语言,如果您的计算机上有有效的arcgis许可证,那么可以在python脚本中使用arcpy模块中的许多地理处理函数。还可以使用modelbuilder从模型创建python脚本。
但是,当您运行尝试使用arcpy模块的工作区时,用户可能会遇到以下错误消息:
python异常:没有名为arcpy的模块
下面提供一些故障排除建议,可能有助于解决无法在fme中导入arcpy的问题。
为了使用arcpy模块,您需要使用arcgis客户机安装的python解释器。为此,在fme workbench中,转到tools>fme options并单击translation。在python解释器下,您将看到一个使用自定义python解释器的选项。单击Browse按钮将允许您导航到所需的解释器。
如果使用32位fme,则arcgis python解释器的路径如下:
C:\ windows\system32\python27.dll
如果使用64位fme,则arcgis python解释器的路径如下所示:
C:\ windows\syswow64\python27.dll
*需要注意的是,如果将64位fme与arcgis(包括arcpy)一起使用,还需要esri的64位后台地理处理模块。但是,我们强烈建议在使用arcpy时使用32位fme,因为32位fme和arcgis(32位应用程序)之间的兼容性更加无缝,并且提供了更多arcpy功能。记得:如果将Arcgis升级到新版本,请确保同时升级ESRI 64位后台地理处理模块。更多关于arcpy和64位的信息可以在这里找到ESRI博客是的。
有关python解释器的更详细解释,请参见:
在python空闲窗口中,输入以下命令:
>>>导入系统>>>打印系统路径
这将打印出系统路径,并显示系统试图访问的python库/目录。
如果您的系统上安装了Arcgis 64位后台地理处理,那么Python2.7 64位库也将安装在您的系统上(即C:\蟒蛇27\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\\库也。
示例脚本的开头如下:
import sys sys.path.append(“c:\\ python27\\ arcgis x x.x\\ lib\\ site packages”)sys.path.append(r'c:\程序文件(x86)\ arcgis\desktopxx.x\arcpy')sys.path.append(r'c:\程序文件(x86)\ arcgis\desktopxx.x\bin')sys.path.append(“c:\\ python27\\ arcgisxx.x\\ lib”)import电弧
如果您已经安装了python的独立安装(与arcgis的版本相同,即蟒蛇 2.7)在安装arcgis客户机之后,您将无意中覆盖arcgis安装的python解释器(python27.dll),fme需要与arcpy通信。
避免覆盖python解释器的一种可能方法是将arcgis安装的python27.dll从系统默认文件夹(即C:\ windows\syswow64或C:\ windows\system32)到安装ArcGis Python可执行文件的文件夹(即C:\蟒蛇27\arcgisxx.x)。这必须在其他python安装之前完成。然后在另一个安装文件夹(即不是C:\蟒蛇27)。在fme中,您需要通过将路径设置为自定义解释器来指向arcgis python27.dll的移动位置。在python脚本中,在导入arcpy模块之前,需要系统路径附加所需的arcpy库(参见建议3)。
请注意,如果卸载独立版本,则用于arcgis的python解释器可能不再工作-您可能会收到“no module named site”错误。可能需要从系统路径中手动删除旧解释器的剩余部分,或者您可以重新安装独立版本的python(同样-不在c:\ python27文件夹中)。
*注-同样的情况也适用于Arcgis Pro和Python3.4。
当所有其他操作都失败时,卸载所有独立的python安装,然后卸载并重新安装arcgis客户端可以恢复python实例并允许fme使用arcpy模块。
你好,
我试图添加一个关闭脚本,其中包括导入arcpy。即使我尝试了以上所有的过程,仍然不起作用。FME返回以下错误。
前置条件在..\framework\engine\stfloginternal失败。cpp:499。表达式:实例!=空值
为了解决这个问题,我发现了一个窍门,如果我在启动脚本中添加import arcpy并将相同的代码放入关闭脚本,fme将成功运行关闭脚本而不会出现任何错误。
希望这能帮助其他程序员。
干杯,
艾米丽
?2019安全亚搏在线软件公司|合法的