08-18-2020 01:02 AM
Hello,
I was able to use python 3.6 in DIAdem. When I tried the same approach for python 3.8.3 I got the error that the python is not initialised. In the documentation I read python 3.6 and 3.7 are supported. Does that mean that python 3.8 is not? What is the reason for that? In my example code I did not even use any syntax incompatible with python 3.6 or python 3.7.
However one of our libraries uses python 3.8 specific functionality so I would need python 3.8 support in DIAdem in order to use that library.
Solved! Go to Solution.
08-19-2020 04:20 PM - edited 08-19-2020 04:21 PM
Hi SeryDavid,
I share your curiosity on this point. If it were just a lack of testing and lack of an execution guarantee, I would not expect trouble at the initialization step. That makes me wonder if there is something dramatically different in how 3.6/3.7 interfaces with the calling application, compared to 3.8. More likely, R&D has hard-coded this restriction to bound usage scenarios, but I'm just guessing.
I have officially asked R&D for an explanation, and if/when they give me one I'll post it here.
Regards,
Brad Turpin
Principal Technical Support Engineer
NI
08-27-2020 02:00 PM - edited 08-27-2020 02:00 PM
Hi SeryDavid,
The official answer from DIAdem R&D is that for python to automate the DIAdem application, the DIAdem application needs to have a version-specific python hoster that natively calls that particular python environment (of that version) such that it can interface with DIAdem commands and global variables. Without the python hoster there would be no "dd" variable to interface from python to DIAdem. As of DIAdem 2020, there are only 2 python hosters that ship with DIAdem, for python 3.6 and python 3.7 respectively. Without a python 3.8 hoster, there's no way to natively interface with DIAdem from a python 3.8 script.
Brad Turpin
Principal Technical Support Engineer
NI