I am attempting to use the arcpy module in the python caller transformer in FME workbench 2019. I am using 64 bit FME 2019.1 build (19643), ArcGIS Desktop 10.6.1 with 64 bit background processing installed. I am wondering if there are any suggestions to getting my workbench to successfully access the arcpy module so I can use Esri GP tools inside my PythonCaller transformer.
I have tried the following settings for preferred python interpreter and python home:
when using this setting it appears that it defaults to FME Python 3.7, the following messages appear to show this in my translation log:
0.0|INFORM|Loaded module 'PythonFactory' from file 'C:\Program Files\FME_2019.1.3.1\plugins/PythonFactory.dll'
0.0|INFORM|FME API version of module 'PythonFactory' matches current internal version (3.8 20190621)
0.0|INFORM|Using Python interpreter from `C:\Program Files\FME_2019.1.3.1\fmepython37\python37.dll' with PYTHONHOME `C:\Program Files\FME_2019.1.3.1\fmepython37'
0.0|INFORM|Python version 3.7 loaded successfully
And the following errors are returned:
0.3|ERROR |Python Exception <ModuleNotFoundError>: No module named 'arcpy'
0.0|ERROR |Error executing string ...**my code snippet here**
0.0|FATAL |Factory proxy not initialized
0.0|FATAL |PythonCaller (PythonFactory): PythonFactory failed to process feature
0.0|ERROR |A fatal error has occurred. Check the logfile above for details
0.0|INFORM|Translation FAILED with 5 error(s) and 0 warning(s) (0 feature(s)
or
when using this setting it explicitly states that it is ignoring the specified python library, the following messages appear to show this in my translation log:
0.0|WARN |The workspace requires Python version 3.7. Ignoring user-specified Python library `C:\Windows\System32\python27.dll'
0.0|INFORM|Using Python interpreter from `C:\Program Files\FME_2019.1.3.1\fmepython37\python37.dll' with PYTHONHOME `C:\Program Files\FME_2019.1.3.1\fmepython37'
0.0|INFORM|Python version 3.7 loaded successfully
and the same errors returned above appear because it has defaulted to FME Python 3.7
I also tried pointing to the python27.dll in the 64 bit windows folder:
and
and received he following messages in my translation log:
0.0|WARN |The User-specified library C:\Windows\SysWOW64\python27.dll could not be loaded
0.0|INFORM|Using Python interpreter from `C:\Program Files\FME_2019.1.3.1\fmepython37\python37.dll' with PYTHONHOME `C:\Program Files\FME_2019.1.3.1\fmepython37'
0.0|INFORM|Python version 3.7 loaded successfully
I got identical errors to the above examples related to a missing module as it was loading the FME python.
I also have ArcGIS Pro 2.3 installed so I attempted to use the following as well
here it appears to load FME Python 3.7 without even trying to use the ArcGIS Pro python
0.0|INFORM|Loaded module 'PythonFactory' from file 'C:\Program Files\FME_2019.1.3.1\plugins/PythonFactory.dll'
0.0|INFORM|FME API version of module 'PythonFactory' matches current internal version (3.8 20190621)
0.0|INFORM|Using Python interpreter from `C:\Program Files\FME_2019.1.3.1\fmepython37\python37.dll' with PYTHONHOME `C:\Program Files\FME_2019.1.3.1\fmepython37'
0.0|INFORM|Python version 3.7 loaded successfully
My code snippet (although it doesnt seem to matter yet since it cant even load the library/module) is as follows:
import fme
import fmeobjects
import arcpy
# Overwrite output feature class
arcpy.env.overwriteOutput=True
def processFeature(feature):
dataset = feature.getAttribute('_dataset')
arcpy.env.workspace = dataset
#Intersect
arcpy.Intersect_analysis("ic_pilot_check",dataset + "/" + "ic_pilot_intersect", "ALL" , "" , "INPUT")