Question

How to solve FME_END_PYTHON failure on FME Server?

  • 23 April 2018
  • 1 reply
  • 16 views

I am trying to bring a workbench to FME Server that has been used on FME Desktop until now. This workbench uses a shutdown python script. The special thing about it is that this workbench uses a custom python interpreter and not FME's Python.

The FME server has been installed on a completely other computer than FME Desktop. So first Python and a few packages had to be installed on this computer. Also I edited the FME server settings in the cmd as it is written in the following article unter "Using a Custom Python Interpreter" in "Windows": https://docs.safe.com/fme/html/FME_Server_Documentation/Content/AdminGuide/Using-Python-with-FME_Server.htm

 In cmd Python and the import of the new packages work fine but when I run the workbench on FME Server the translation fails. It says not more than "FME_END_PYTHON failure". The log file of the job doesn't give more hints about the problem. The last lines are the following ones:

Translation was SUCCESSFUL with 43 warning(s) (6398 feature(s) output)
FME Session Duration: 6 minutes 5.6 seconds. (CPU: 233.1s user, 15.9s system)
END - ProcessID: 12696, peak process memory usage: 2969312 kB, current process memory usage: 348760 kB

I guess that FME still uses the wrong python interpreter because I also tried to minimize the shutdown script to something like 'print "Test"'. The result is the same. The translation fails. Additionally the python code works fine in the workbench when I run it with FME Desktop on the other machine.

Also it is strange to me that Python is installed in 32 bit (also the FME Server) but the python27.dll is in the SysWOW64 directory and not in the System32 directory. So my question is whether it is possible to find out more about the problem and to debug the shutdown script. Or is it possible to debug whether the right python interpreter is used. I tried to copy the python27.dll from another python installation (also 32 bit) into the System32 directory and edit the FME Server settings in the cmd (<FMEServerDir>Server/fme/fme.exe APPLY_SETTINGS SYSTEM "Python/Python Interpreter" C:/Windows/System32/python27.dll") but also that does not work.


1 reply

Userlevel 4

I'd be very careful about copying dll files around unless you have a very specific reason. You do not want to mix 32-bit and 64-bit dlls, they're not interchangable.

You should be using the DLL paths that's listed here, according to your scenario:

https://knowledge.safe.com/articles/814/choosing-a-different-python-interpreter-installati.html

Another thing to know, is that print statements on FME Server do not show up in the job log, but in the server log.

Reply