Rumah > pembangunan bahagian belakang > Tutorial Python > AttributeError apabila membenamkan python dalam C++ (Ubuntu)

AttributeError apabila membenamkan python dalam C++ (Ubuntu)

WBOY
Lepaskan: 2024-02-10 14:09:04
ke hadapan
996 orang telah melayarinya

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

Kandungan soalan

Saya mempunyai program c++ yang dibenamkan dalam python3.11.2. Apabila memanggil skrip python daripada python terbenam (mengimport modul pihak ke-3 serta modul perpustakaan standard) saya mendapat ralat berikut:

excType: 'AttributeError'
excValue: AttributeError("module 'abc' has no attribute '__file__'")
excTraceback: <traceback object at 0x7f1e48c5f200>
Salin selepas log masuk

Apabila saya menjalankan skrip daripada python biasa (tidak terbenam), semuanya berfungsi dengan baik dan saya juga dapat mencari atribut fail untuk modul abc.

Saya menyusun python3.11.2 daripada sumber menggunakan konfigurasi berikut: --dayakan-pengoptimuman --dayakan-kongsi --prefix="path/to/my/custom/build/folder/

Perkara yang pelik ialah setiap modul pihak ke-3 yang saya import skrip mempunyai atribut fail dan dimuatkan dengan baik.

Adakah sesiapa mempunyai sebarang pandangan tentang apa yang boleh menyebabkan perkara ini?

Sistem pengendalian saya: ubuntu 22.04.3

Saya menguji modul perpustakaan standard lain seperti os Jika saya memanggil fungsi dalam OS daripada python terbenam, ia berfungsi dengan baik, tetapi atribut fail OS tidak ditemui. Jika saya melakukan ini daripada python tidak terbenam, ia akan menemui atribut fail.

Kemas kini: Saya baru mendapati bahawa python terbenam mempunyai awalan kosong. Bagaimanakah saya boleh menukar awalan ini? Menetapkan pythonhome tidak mengubah apa-apa.


Jawapan betul


Saya menemui penyelesaiannya dengan menambahkan atribut fail modul secara manual. Saya masih tidak faham mengapa atribut file tidak ditetapkan secara lalai, tetapi ini berfungsi untuk saya sekarang.

Atas ialah kandungan terperinci AttributeError apabila membenamkan python dalam C++ (Ubuntu). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan