LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Is Python Node the same as Python Integration Toolkit?

Solved!
Go to solution

I was wondering whether to use the node or the toolkit, but I did not fully understand the node after looking at the documentation and the examples, so I was wondering if it could do the following, from the toolkit website:

"Can execute multiple function calls, get and set variables, or perform other operations for as long as you want."

 

as well as 

"
So the concept is less like running a Python script, and more like an ongoing conversation between LabVIEW and Python. The Toolkit handles all the messy details like setting up communication with Python, handling type conversion, and translating Python exceptions to LabVIEW errors. All you need to do is write your Python-side and LabVIEW-side code, and it just works."

 

Links to documentation (for reference):https://www.ni.com/docs/en-US/bundle/labview/page/glang/close_python_session.html

https://www.ni.com/docs/en-US/bundle/labview/page/glang/open_python_session.html

https://www.ni.com/docs/en-US/bundle/labview/page/glang/python_node.html

 

Links to Toolkit Website (for reference): http://docs.enthought.com/python-for-LabVIEW/guide/start.html

 

Any help would be appreciated, thanks!

 
0 Kudos
Message 1 of 4
(1,694 Views)

Hey astrocarbonate,

 

Enthought is no longer issuing licenses for this product. See this: https://support.enthought.com/hc/en-us/articles/360035630192-Toolkit-End-of-Life-Porting-to-LabVIEW-.... It should also answer your questions about parallels of node and toolkit.

 

Hope that helps,

LabVIEWfan123

0 Kudos
Message 2 of 4
(1,582 Views)
Solution
Accepted by topic author astrocarbonate

The same? No. They are designed differently.

 

The Python Node does not allow you to get and set variables, which I would argue is a good thing. It doesn't seem like good programming practice to me to be reaching into the Python domain to modify global variables from LabVIEW. (If there are specific variables you absolutely need to set that way, it shouldn't be too burdensome to create functions to access them in your Python module.) 

 

Calling functions is, IMO, simpler with NI's Python Node. You do not need to pack and unpack data, you just pass it in and get the return value.

 

For example. this:

Becomes this when using the Python Node:

JimB_0-1658937442225.png

One thing to note, the Python node supports treating arrays as either lists or NumPy arrays. For their "square_it" example to work, make sure you have selected the option to marshal to NumPy array:

JimB_2-1658937908053.png

If that is not checked then the array will be passed as a list and you will get back an error that it is an unsupported type for the ** operator.

 

As for whether you should use one or the other, the NI integration is a supported feature that has gotten some updates (relatively) recently. Enthought seems to me as though they likely abandoned this toolkit when NI launched their own, but you would have to ask them to be sure.

 

(BTW, you can ask related information on the same thread. No real reason to have separated this from your other one.)

Message 3 of 4
(1,648 Views)

Wow, thank you! This helps a lot. I will definitely look further into it. I appreciate it. 

0 Kudos
Message 4 of 4
(1,634 Views)