在LabVIEW中使用Python Node 時出現錯誤1667

更新 Feb 16, 2024

產品資訊

軟體

  • LabVIEW

問題敘述

當我在LabVIEW中使用Python Node呼叫Python函式時,遇到以下錯誤訊息:

"Error 1667 occurred at Python Node in Test.vi

Possible reason(s):
LabVIEW: (Hex 0x683) The specified Python module could not be imported."

解決方案

發生此問題的原因可能有多種,一般來說根本原因在錯誤訊息的最後一部份中有提到: “ImportError”。這部份錯誤訊息讓我們更好判斷錯誤的來源。

如果import錯誤顯示"Attempted relative import with no known parent package",則可能是 Python Node無法直譯module中使用的Rlative Import (相對引入)。請嘗試以下解決方法之一:
  • 將相對引入(relative import) 轉換為絕對導入(absolute import)。這通常可以透過刪除相關引入使用的前導點來實現。相對引入的語法取決於當前位置以及要引入的module所在位置,所以您需要檢查如何將其更改為您正在使用的特定module的絕對路徑。在Absolute vs Relative Imports in Python.文章中您可以閱讀有關相對引入的更多資訊。
  • 如果您直接從使用相對引入的已安裝 Python  package呼叫函式,則可能會發生此錯誤。如果您嘗試從 LabVIEW 呼叫的函式在從 Python 腳本呼叫並從不同的 IDE 執行時正常工作,則一種解決方法是建立一個包裝(wrapper) Python 腳本以間接呼叫該函式,而不是直接從已安裝的module 中進行呼叫。
如果引入錯誤顯示“No module named ...”,則可能與未正確設定 Python 路徑有關。請嘗試以下步驟來解決此問題:

1.重新安裝Python,並確保在安裝過程中勾選"Add Python X.X to Path"選項。

2.安裝完成後,打開命令提示字元根據需求去安裝您要使用的Python module。舉opencv為例:
$ py -m pip install opencv-python

pip-install-opencvpython