西班牙
斯潘4
我试图在FME中使用自定义interpeter函数来设置我的anaconda环境。作为interpeter,我选择了.dll文件(C:\(…)\anaconda2\envs\gdal\python27.dll)。这成功地识别了Python并进行了基本的设置。但是,我的包裹不包括在内。尝试导入geopandas(在我的Anaconda编辑器中运行良好)会导致FME中出现以下错误:
Python异常:没有名为geopandas 2018-12-04 12:50:20 | 0.5 | 0.0 | ERROR | ERROR的模块执行字符串时出错`importfmeimportfmeobjectsprinthellopiterimportossys#sys.path.appendrC:usersfvzfappdatalocalcontinuanumaconda2envsgdalpython.eximportgeopandasgpd#fromrasterstatsimportzonal _statsprinthellopiterţTemplateFunctioninterface:ţ当使用此函数时,确保其名称为ţ类函数处理功能的值或参数defprocessfeat时urefeature:printhelloPieter#TemplateClassInterface:#当使用该类确保其名称被指定为#ClassorFunctiontoProcessFeaturesTransformerParameterClassFeatureProcessorObject:def#u init#u self:passDefinitPutSelf功能:self.pyOutputFeatureDefCloself:pass'2018-12-04 12:50:20 | 0.5 | 0.0 |致命|工厂代理未初始化2018-12-0412:50:20 | 0.5 | 0.0 |致命| PythonCaller(PythonFactory):PythonFactory未能处理功能2018-12-04 12:50:20 | 0.5 | 0.0 |错误|发生致命错误。查看上述日志文件了解详情2018-12-04 12:50:20 | 0.5 | 0.0 |通知
我能做些什么来修复这个问题并将我的所有包导入FME?
我有一个类似的问题,配置水蟒与FME,这篇文章有帮助,但错过了一些关于兼容性的细节。希望这能在将来节省一些时间
-FME/Anaconda/Python的版本必须都兼容。我有FME 2018.1,需要在非2.7python中实现的特性,而Anaconda的当前版本是python 3.7(不支持2018 FME)。所以我不得不找到一个旧版本的Anaconda,它支持FME支持的python版本3。Anaconda3-4.2.0-Windows-x86_64用python 3.5满足了这一需求。或者,将FME更新到2019年也可以解决这个问题。
-根据指定路径@david_r邮递
-如果python问题兼容,FME将恢复到默认安装,忽略Anaconda安装
-我也没有本地管理员,但Anaconda的非管理员本地安装似乎工作得很好(AppData\local\Continuum\
我可以使用FME和Anaconda作为Python解释器,使用以下设置:
在FME选项中:
在工作空间脚本参数:
我认为最重要的方面是匹配FME和Anaconda的“bitness”,例如你不能使用FME 32位和Anaconda 64位。
谢谢你的帮助和截图。运行Anaconda2似乎工作得很好(FME,告知|Python 2.7版本加载成功)。然而,由于某些原因,我仍然无法从FME pythoncaller导入定制包(gdal,geopandas,rasterstats),导致以下错误:
Python异常:DLL加载失败:
但是使用anaconda提示符在相同的anaconda环境中导入包是成功的
(gdal) C: python python 2.7.15 |Anaconda, Inc.|(默认,2018年11月13日,17:33:26)1500 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information.
> > >进口gdal
> > >进口geopandas
> > >进口rasterstats
>>>
你知道是什么原因导致这个错误吗?
dll的路径不一定决定实际使用哪一个Python解释器。您试过设置PYTHONHOME环境变量吗?在最新版本的FME 2018.1中,你可以在FME选项中设置PYTHONHOME,在更早的版本中,你需要将它定义为一个系统环境变量(可能需要重启你的电脑才能生效)。
Python脚本-覆盖记录2个答案
从命令行启动FME:等待翻译完成5个答案
Python setAttribute dict属性列表3个答案
用蟒蛇检查空间关系3个答案
FME Python脚本帮助6个答案
?2019安全亚搏在线软件公司|合法的