Solved

What version of Python is in FME Flow Hosted 2023.1.1?

  • 8 November 2023
  • 3 replies
  • 55 views

Badge +2

I had an FME Cloud 2022.2 instance where I had uploaded a Python module and its dependencies to the python38 directory as that was the version of Python I had on local machine running FME Desktop. Everything worked as expected.

 

When I replaced the instance with an FME Flow Hosed 2023.1.1 instance, the workspaces using the module continued working normally. However, I wanted to upgrade the module as I was using a pre-release version. My local machine is now running Python 3.10, so I uploaded the new version of the modules and its dependencies to the python310 directory on the instance and removed the files in python38. I have not been able to get the module to work in the python310. I have both removed and re-added engines and rebooted the instance. If I move the files into the python38 directory, the module is accessible.

 

I noticed that even though the workspaces have Python capability set to 310, the workspace logs on the instance always say they are using Python 3.8. This makes sense, since the Flow Hosted images use Linux and therefore presumably the system Python interpreter.

 

Should putting the module files in the python39 to python311 directories work even if the Python version on the instance is 3.8? If not, is this requirement documented anywhere? I assumed I could use modules for Python 3.6 to 3.11 since the those versions are all implied in the Python plugins directory.

icon

Best answer by timatsafe 22 November 2023, 22:48

View original

3 replies

Userlevel 1
Badge +3

Hi @cnieman​,

 

FME 2023.x is shipped with Python 3.11. Here is an article that might be useful on how to upload custom Python libraries to FME Flow Hosted: https://community.safe.com/s/article/Using-Python-with-FME-Flow-Hosted

 

We also have some documentation on Using Python with FME Flow and Importing Custom Python Modules to FME Flow

 

Once loaded properly the job logs should show that you are using the desired Python version that has been set in the Python compatibility parameter in the workspace.

 

Cheers,

Tim

  

Badge +2

Hi @cnieman​,

 

FME 2023.x is shipped with Python 3.11. Here is an article that might be useful on how to upload custom Python libraries to FME Flow Hosted: https://community.safe.com/s/article/Using-Python-with-FME-Flow-Hosted

 

We also have some documentation on Using Python with FME Flow and Importing Custom Python Modules to FME Flow

 

Once loaded properly the job logs should show that you are using the desired Python version that has been set in the Python compatibility parameter in the workspace.

 

Cheers,

Tim

  

I have done everything in that article multiple times. The attached zip file has a simple workspace with a PythonCreater in it. When the workspace is run locally on a Mac, the Python version reported in the log file is 3.11, which is as I expect based on the information here: https://docs.safe.com/fme/html/FME-Form-Documentation/FME-Form/Workbench/Python-Compatibility.htm

 

When I run the workspace locally on an Ubuntu 22.04 machine, the Python version is reported as 3.10, which is the version of Python shipped with ubuntu 22.04.

 

When I run it on our FME Flow Hosted instance, it reports 3.8 as shown in the job log in the attachment. Is this expected? Based on the above link, it is expected if the OS is Linux and therefore the system interpreter is being used. if I'm not mistaken, the host OS is Ubuntu 20.04, which ships with Python 3.8.

 

Should my FME Flow Hosted instance be using Python 3.11? If so, how do I make it use 3.11?

Userlevel 1
Badge +3

I have done everything in that article multiple times. The attached zip file has a simple workspace with a PythonCreater in it. When the workspace is run locally on a Mac, the Python version reported in the log file is 3.11, which is as I expect based on the information here: https://docs.safe.com/fme/html/FME-Form-Documentation/FME-Form/Workbench/Python-Compatibility.htm

 

When I run the workspace locally on an Ubuntu 22.04 machine, the Python version is reported as 3.10, which is the version of Python shipped with ubuntu 22.04.

 

When I run it on our FME Flow Hosted instance, it reports 3.8 as shown in the job log in the attachment. Is this expected? Based on the above link, it is expected if the OS is Linux and therefore the system interpreter is being used. if I'm not mistaken, the host OS is Ubuntu 20.04, which ships with Python 3.8.

 

Should my FME Flow Hosted instance be using Python 3.11? If so, how do I make it use 3.11?

@cnieman​ Sorry about the confusion, I checked with my team and can confirm that because Flow Hosted ships with Python 3.8 as you said, you won't be able to use 3.11 on Flow Hosted. This is why the job log shows 3.8 and not 3.11 when you run the job on a FME Flow Hosted instance.

 

Reply