NI Python 模組中讀取存取衝突 0x0000000000000008

更新 Jan 9, 2025

產品資訊

程式語言

  • Python

問題敘述

  • 我在寫一個使用 NI Python 模組之一的 Python 腳本。每當我執行腳本時,我都會看到OSError: exception: access violation reading 0x0000000000000008. 。請問這是什麼原因造成的?
  • 另外我有也用 nifpga Python library,當我在 Python 32 位元中執行腳本時,它可以正常執行。但當我在 Python 64 位元中執行相同的腳本時,我也會遇到錯誤0x0000000000000008 。我該如何解決這個問題?
  • 將 NI Python 模組匯入到我的 Python 64 位元腳本中後,該腳本會產生 exit code 1 和存取衝突。但又有的時候腳本執行時不會出現任何錯誤。

解決方案

此錯誤可能由多種因素引起,具體取決於觀察到的行為。這些因素包括:

  • 防毒或安全軟體阻止 Python DLL 正常執行。
  • 腳本內的空指標。
  • Python 安裝損壞。
  • 位元檔案損壞(如果使用 nifpga library)。


請依照以下步驟確定並解決錯誤原因:

  1. 如果該錯誤僅在 64 位元 Python 中發生,或者該錯誤僅偶爾發生,請暫時刪除任何第三方防毒或安全軟體。
    • 存取衝突0x0000000000000008表示 Python 無法執行讀取操作,因此防毒程式可能會阻止所需的 DLL 運作。
  2. 驗證任何範例腳本執行時是否沒有錯誤。根據所使用的 NI Python 模組,可以在以下連結中找到範例:
  3. 檢查您的腳本並檢查是否在產生錯誤的行上方建立了任何指標。使用者定義的指標有可能在執行時變成NULL
  4. 嘗試重新安裝 Python 和 NI Python 模組以驗證安裝未損壞。
    • 檢查另一台 PC 上相同腳本、模組和 Python 版本的行為也將驗證安裝是否已損壞。
  5. 如果使用[外部] nifpga library,位元檔案可能已損壞。嘗試在 LabVIEW 中重新編譯位元檔案,然後重新執行腳本。