使用TestStand Adapter時遇到Python直譯器報錯

更新 Oct 28, 2022

產品資訊

軟體

  • TestStand

問題敘述

執行TestStand Sequence時出現以下錯誤。

Unable to use PyObject created in another python interpreter session. You can use PyObject which is created in same python interpreter session. 

Python interpreter session crashed. If a console is displayed, closing the console will crash the interpreter. Complete all executions, unload all modules and retry executing the sequence file.

rtaImage.jfif

為什麼會發生這種情況,我該如何解決?

解決方案

建立Python Object(物件)時,它是在給定的直譯器中完成的。在一個直譯器中建立的物件不能與另一個直譯器共享。可以使用“Adapter Settings”或“ Python步驟”的“Advanced Settings”來設定Python Code Module所使用的直譯器。

可以將PythonAdapter設定為在Global (全局),Per Execution(每個執行) 或Per Thread (每個線程)的基礎上使用直譯器。 TestStand Help文檔說明了每個設定的功能。

  • Global-所有PythonModule都在Python直譯器的單個實例中執行。
  • Per Execution-每次執行都使用Python直譯器的單獨實例來執行Module。
  • Per Thread-每個線程使用一個單獨的Python直譯器實例來執行Module。

可透過“Step Settings”中的“Advanced Settings”按鈕調整每一個Python步驟直譯階段的設定: 可選擇“Adapter Settings”或“Object Reference”,如果不存在的話則建立一個。

考慮到可能有多個直譯器,所以重要的一點是要追蹤各Object分別屬於哪個直譯器。如果將來自一個直譯器的Object Reference引入TestStand,則必須在後續步驟中在該直譯器中使用它。