Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapa Saya Tidak Boleh Memuatkan Modul DLL Saya dalam Python 3.8 pada Windows?

Mengapa Saya Tidak Boleh Memuatkan Modul DLL Saya dalam Python 3.8 pada Windows?

Barbara Streisand
Lepaskan: 2024-10-28 21:29:02
asal
807 orang telah melayarinya

Why Can't I Load My DLL Module in Python 3.8  on Windows?

Menyelesaikan Masalah Memuatkan Modul DLL dalam Python pada Windows

Percubaan baru-baru ini untuk mengimport DLL libuvc yang disusun pada Windows telah menghasilkan ralat "Tidak dapat mencari modul 'libuvc.dll'". Walaupun mencari laluan fail dengan betul menggunakan ctypes.util.find_library, Python gagal memuatkannya. Isunya terletak pada parameter winmode dalam fungsi ctypes.cdll.LoadLibrary.

Memahami Parameter Winmode

Sebelum Python 3.8, winmode tidak wujud dan mod telah tetapkan terus kepada ctypes.DEFAULT_MODE, yang sepadan dengan nilai sifar. Dalam Python 3.8, winmode telah diperkenalkan.

Apabila winmode ditetapkan kepada Tiada, mod carian lalai kepada nt._LOAD_LIBRARY_SEARCH_DEFAULT_DIRS. Mod carian ini tidak mengambil kira perubahan pada pembolehubah atau laluan persekitaran.

Walau bagaimanapun, menetapkan winmode kepada 0 menentukan bahawa laluan penuh harus digunakan dan pustaka berjaya dimuatkan. Tingkah laku ini didokumenkan dalam dokumentasi Microsoft (https://learn.microsoft.com/en-us/windows/win32/api/libloaderapi/nf-libloaderapi-loadlibraryexa).

Menyelesaikan Isu

Untuk menyelesaikan isu pemuatan, hanya nyatakan winmode=0 apabila memanggil ctypes.cdll.LoadLibrary, seperti dalam coretan kod berikut:

import ctypes

name = ctypes.util.find_library('libuvc')
lib = ctypes.cdll.LoadLibrary(name, winmode=0)
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Memuatkan Modul DLL Saya dalam Python 3.8 pada Windows?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan