首頁  >  文章  >  後端開發  >  在 C++ 中嵌入 python 時出現 AttributeError (Ubuntu)

在 C++ 中嵌入 python 時出現 AttributeError (Ubuntu)

WBOY
WBOY轉載
2024-02-10 14:09:04952瀏覽

在 C++ 中嵌入 python 时出现 AttributeError (Ubuntu)

問題內容

我有一個嵌入 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中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除