span8
span4
添加使用Esri的ArcPy中模块到工作区中一个Python脚本是扩展工作台的功能的好方法。对于Python是ArcGIS的默认脚本语言,如果你有你的机器上的一个有效的ArcGIS许可,您可以在您的Python脚本使用的ArcPy中模块中的许多地理处理功能。您还可以使用模型构建器从你的模型创建的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 \ Syswow64资料\ python27.dll
*请注意,如果使用64位FME使用ArcGIS(包括ArcPy中),你还需要有ESRI公司的64位背景地理处理模块是非常重要的。然而,我们强烈建议使用利用ArcPy中为32位FME和ArcGIS(32位应用程序)之间的相容性时,32位FME是更加无缝,并提供更ArcPy中的功能。还记得:如果您的ArcGIS升级到新版本,请确保您还升级ESRI的64位背景地理处理模块。更多关于ArcPy中和64位可以在此找到Esri的博客。
Python解释的更详细的解释可以在这里找到:
在Python IDLE窗口,输入以下命令:
>>>进口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环境变量中。要修复此问题,请找到下面的desktopxxx . x .pth文件C: \ Python27 \ ArcGISXX.X \ Lib \网站(ArcGISXX。X references your installed version of ArcGIS), and append the file locations specified in its contents to the 'Path' Environment variable.根据您的环境,您可能还需要添加C: \ Python27 \ ArcGISXX.X \ Lib \网站和C: \ \ Python27 \ \ ArcGISXX.X \ \ lib也
一个例子脚本将开始如下:
导入sys.path.append(“C:\\Python27\\ArcGISXX.X\\Lib\\site-packages”)sys.path。添加(r' c:\Program Files (x86)\ArcGIS\ desktopxxx . 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") import arcpy
如果你已经安装了一个独立的Python安装(与ArcGIS相同的版本-即安装你的ArcGIS客户端后,你会不小心覆盖了ArcGIS安装的Python解释器(python27.dll), FME需要与arcpy通信。
避免覆盖python解释器的一种可能的方法是将ArcGIS安装的python27.dll从系统默认文件夹(即C:\Windows\SysWOW64或C:\Windows\ System32系统)的文件夹ArcGIS python可执行的安装(即。C: \ Python27 \ ArcGISXX.X)。这必须在进行任何其他Python安装之前完成。然后在不同的安装文件夹中安装Python 2.7的独立版本(即不是C: \ Python27)。在FME中,您需要通过将该路径设置为自定义解释器来指定ArcGIS python . 27.dll的移动位置。在您的Python脚本中,在导入arcpy模块之前,需要系统路径附加所需的arcpy库(参见建议#3)。
请注意,如果您卸载独立版本,您的ArcGIS Python解释器可能不再工作-您可能会收到一个“无模块命名的网站”错误。它可能需要手动从系统路径中删除旧解释器的残余,或者您可以重新安装Python的独立版本(同样-不在C:\Python27文件夹中)。
*注:这同样适用于ArcGIS Pro和Python 3.4。
当所有其他操作都失败时,卸载所有独立的Python安装,然后卸载和重新安装ArcGIS客户端,可以恢复您的Python实例,并允许FME使用arcpy模块。
你好,
我试图添加一个关闭脚本,其中包括导入arcpy。即使我尝试了以上所有的方法,仍然不起作用。FME返回以下错误。
前置条件在..\框架\引擎\stfloginternal.cpp:499失败。表达式:instance_ != nullptr
为了解决这个问题,我发现了一个技巧,如果我在启动脚本中添加import arcpy,并将相同的代码放入关闭脚本,FME将成功运行关闭脚本,没有任何错误。
希望这将有助于所有其他程序员。
欢呼,
艾米丽
©2019安全亚搏在线软件公司|法律