我有一個嵌入 python3.11.2 的 c 程式。從嵌入式 python 呼叫 python 腳本(導入第 3 方模組以及標準函式庫模組)時,出現下列錯誤:
excType: 'AttributeError' excValue: AttributeError("module 'abc' has no attribute '__file__'") excTraceback: <traceback object at 0x7f1e48c5f200>
當我從普通(非嵌入式)python 運行腳本時,一切正常,並且還能夠找到 abc 模組的檔案屬性。
我使用以下配置從原始碼編譯了 python3.11.2: --enable-optimizations --enable-shared --prefix="路徑/到/我的/自訂/建置/資料夾/
奇怪的是,我的腳本導入的每個第 3 方模組都有一個 file 屬性並且載入正常。
有人對造成這種情況的原因有任何見解嗎?
我的作業系統:ubuntu 22.04.3
我測試了其他標準庫模組,例如 os。如果我從嵌入式 python 呼叫作業系統中的函數,它工作正常,但找不到作業系統的 file 屬性。如果我從非嵌入式 python 執行此操作,它確實會找到 file 屬性。
更新:我剛剛發現嵌入式 python 有一個空前綴。我怎樣才能更改這個前綴?設定 pythonhome 不會改變任何東西。
我透過手動新增模組的 file 屬性找到了解決方法。我仍然不明白為什麼預設沒有設定 file 屬性,但這現在對我有用。
以上是在 C++ 中嵌入 python 時出現 AttributeError (Ubuntu)的詳細內容。更多資訊請關注PHP中文網其他相關文章!