FME中的Python包配置
首先,在FME中如需使用Pythoncaller时需要指定Python解释器,在FME中选择Tools-FME Options-Translation,如下:
我电脑上安装的是python3.8版本,我这里选择的是FME Python3.7+版本。
一开始我尝试的是添加".pth"的方法从电脑上另外的Python或者ArcGIS中调包,但是遇到了大大小小的问题。当import时会报错,显示缺少一些特殊文件。如果把包直接复制过来放在FME的python配置文件中也会出现类似的错误。我觉得根本原因是因为使用pip3 install <package_name>时下载的包不能完全适配FME。
为了在使用Pythoncaller时不出现调包错误,这里使用fme命令把要用的包文件直接下载内置到FME配置文件中,通过这个方式下载的包可以完全适配FME。具体步骤如下:
找到电脑上在使用的FME文件包,在我电脑上的文件路径为:
注意:FME版本需要是64位的
在这个文件路径下可以看到里面有FME下载时自带的numpy等包,FME自带的numpy是1.15.1版本的。
打开命令窗口,输入以下命令:
Windows:
fme.exe python -m pip install <package_name> --target <package_destination_folder>
Linux:
./fme python -m pip install <package_name> --system --target <package_destination_folder>
macOS:
./fme python -m pip install <package_name> --target <package_destination_folder>
以安装pandas为例,我们在Windows中输入:
fme.exe python -m pip install pandas --target "C:\Program Files\FME\20594X64\python\python37"
此时pandas包会自动下载到FME中对应的Pyhton文件夹中,默认下载的pandas是最新版本,下载pandas时会自带把numpy的最新版本也下载,但是Windows中使用目前最新版本1.19.4的numpy时会报错,此时需要手动删除FME的Python包中目前已下载的numpy文件,然后再指定下载1.19.3版本的numpy:
fme.exe python -m pip install numpy==1.19.3 --target "C:\Program Files\FME\20594X64\python\python37"
此时就大功告成啦!可以在Pythoncaller中愉快地import 这些包啦,后续如果要添加其它包也是通过这个方法。