Python ctypes.util.find_library() Examples
The following are 30
code examples of ctypes.util.find_library().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
ctypes.util
, or try the search function
.
Example #1
Source File: test_loading.py From Fluid-Designer with GNU General Public License v3.0 | 7 votes |
def test_load_library(self): # CRT is no longer directly loadable. See issue23606 for the # discussion about alternative approaches. #self.assertIsNotNone(libc_name) if test.support.verbose: print(find_library("kernel32")) print(find_library("user32")) if os.name == "nt": windll.kernel32.GetModuleHandleW windll["kernel32"].GetModuleHandleW windll.LoadLibrary("kernel32").GetModuleHandleW WinDLL("kernel32").GetModuleHandleW elif os.name == "ce": windll.coredll.GetModuleHandleW windll["coredll"].GetModuleHandleW windll.LoadLibrary("coredll").GetModuleHandleW WinDLL("coredll").GetModuleHandleW
Example #2
Source File: cet.py From libcet with MIT License | 7 votes |
def __init__(self, ticket_number_key, request_data_key, libcrypto_path=None): self.check_des_key(ticket_number_key) self.check_des_key(request_data_key) self.ticket_number_key = ticket_number_key self.request_data_key = request_data_key if not libcrypto_path: from ctypes.util import find_library libcrypto_path = find_library('crypto') if not libcrypto_path: raise Exception('libcrypto(OpenSSL) not found') self.libcrypto = ctypes.CDLL(libcrypto_path) if hasattr(self.libcrypto, 'OpenSSL_add_all_ciphers'): self.libcrypto.OpenSSL_add_all_ciphers()
Example #3
Source File: util.py From benchexec with Apache License 2.0 | 7 votes |
def get_capability(filename): """ Get names of capabilities and the corresponding capability set for given filename. @filename: The complete path to the file """ res = {"capabilities": [], "set": [], "error": False} try: libcap_path = find_library("cap") libcap = ctypes.cdll.LoadLibrary(libcap_path) except OSError: res["error"] = True logging.warning("Unable to find capabilities for {0}".format(filename)) return res cap_t = libcap.cap_get_file(ctypes.create_string_buffer(filename.encode("utf-8"))) libcap.cap_to_text.restype = ctypes.c_char_p cap_object = libcap.cap_to_text(cap_t, None) libcap.cap_free(cap_t) if cap_object is not None: cap_string = cap_object.decode("utf-8") res["capabilities"] = (cap_string.split("+")[0])[2:].split(",") res["set"] = list(cap_string.split("+")[1]) return res
Example #4
Source File: test_loading.py From oss-ftp with MIT License | 7 votes |
def test_load_library(self): self.assertIsNotNone(libc_name) if is_resource_enabled("printing"): print find_library("kernel32") print find_library("user32") if os.name == "nt": windll.kernel32.GetModuleHandleW windll["kernel32"].GetModuleHandleW windll.LoadLibrary("kernel32").GetModuleHandleW WinDLL("kernel32").GetModuleHandleW elif os.name == "ce": windll.coredll.GetModuleHandleW windll["coredll"].GetModuleHandleW windll.LoadLibrary("coredll").GetModuleHandleW WinDLL("coredll").GetModuleHandleW
Example #5
Source File: test_loading.py From ironpython2 with Apache License 2.0 | 7 votes |
def test_load_library(self): self.assertIsNotNone(libc_name) if is_resource_enabled("printing"): print find_library("kernel32") print find_library("user32") if os.name == "nt": windll.kernel32.GetModuleHandleW windll["kernel32"].GetModuleHandleW windll.LoadLibrary("kernel32").GetModuleHandleW WinDLL("kernel32").GetModuleHandleW elif os.name == "ce": windll.coredll.GetModuleHandleW windll["coredll"].GetModuleHandleW windll.LoadLibrary("coredll").GetModuleHandleW WinDLL("coredll").GetModuleHandleW
Example #6
Source File: test_loading.py From BinderFilter with MIT License | 7 votes |
def test_load_library(self): self.assertFalse(libc_name is None) if is_resource_enabled("printing"): print find_library("kernel32") print find_library("user32") if os.name == "nt": windll.kernel32.GetModuleHandleW windll["kernel32"].GetModuleHandleW windll.LoadLibrary("kernel32").GetModuleHandleW WinDLL("kernel32").GetModuleHandleW elif os.name == "ce": windll.coredll.GetModuleHandleW windll["coredll"].GetModuleHandleW windll.LoadLibrary("coredll").GetModuleHandleW WinDLL("coredll").GetModuleHandleW
Example #7
Source File: __init__.py From SwiftKitten with MIT License | 7 votes |
def find_yajl_ctypes(required): ''' Finds and loads yajl shared object of the required major version (1, 2, ...) using ctypes. ''' # Importing ``ctypes`` should be in scope of this function to prevent failure # of `backends`` package load in a runtime where ``ctypes`` is not available. # Example of such environment is Google App Engine (GAE). from ctypes import util, cdll so_name = util.find_library('yajl') if so_name is None: raise YAJLImportError('YAJL shared object not found.') yajl = cdll.LoadLibrary(so_name) require_version(yajl.yajl_version(), required) return yajl
Example #8
Source File: __init__.py From nightmare with GNU General Public License v2.0 | 7 votes |
def __init__(self): v_posix.PosixMixin.__init__(self) v_posix.PtraceMixin.__init__(self) self.libc = ctypes.CDLL(c_util.find_library('c')) self.myport = self.libc.mach_task_self() self.libc.mach_port_allocate.argtypes = [ipc_space_t, mach_port_right_t, ctypes.POINTER(mach_port_name_t)] self.libc.mach_port_allocate.restype = kern_return_t self.libc.mach_vm_read.argtypes = [ mach_port_t, size_t, size_t, ctypes.POINTER(ctypes.c_void_p), ctypes.POINTER(ctypes.c_uint32)] self.libc.mach_vm_read.restype = kern_return_t #FIXME mach_port_insert_right self.portset = self.newMachPort(MACH_PORT_RIGHT_PORT_SET) self.excport = self.newMachRWPort() self.addPortToSet(self.excport)
Example #9
Source File: library.py From picosdk-python-wrappers with ISC License | 6 votes |
def _load(self): library_path = find_library(self.name) if library_path is None: env_var_name = "PATH" if sys.platform == 'win32' else "LD_LIBRARY_PATH" raise CannotFindPicoSDKError("PicoSDK (%s) not found, check %s" % (self.name, env_var_name)) try: if sys.platform == 'win32': from ctypes import WinDLL result = WinDLL(library_path) else: from ctypes import cdll result = cdll.LoadLibrary(library_path) except OSError as e: raise CannotOpenPicoSDKError("PicoSDK (%s) not compatible (check 32 vs 64-bit): %s" % (self.name, e)) return result
Example #10
Source File: key_names.py From kitty with GNU General Public License v3.0 | 6 votes |
def load_libxkb_lookup() -> LookupFunc: import ctypes for suffix in ('.0', ''): with suppress(Exception): lib = ctypes.CDLL('libxkbcommon.so' + suffix) break else: from ctypes.util import find_library lname = find_library('xkbcommon') if lname is None: raise RuntimeError('Failed to find libxkbcommon') lib = ctypes.CDLL(lname) f = lib.xkb_keysym_from_name f.argtypes = [ctypes.c_char_p, ctypes.c_int] f.restype = ctypes.c_int def xkb_lookup(name: str, case_sensitive: bool = False) -> Optional[int]: q = name.encode('utf-8') return f(q, int(case_sensitive)) or None return xkb_lookup
Example #11
Source File: psutils.py From picosdk-python-examples with ISC License | 6 votes |
def psloadlib(name): """ Loads driver library :param name: driver name :type name: str :returns: ctypes reference to the library :rtype: object """ result = None try: if sys.platform == 'win32': result = ctypes.WinDLL(find_library(name)) else: result = cdll.LoadLibrary(find_library(name)) except OSError as ex: print name, "import(%d): Library not found" % sys.exc_info()[-1].tb_lineno return result
Example #12
Source File: test_loading.py From datafari with Apache License 2.0 | 6 votes |
def test_load_library(self): self.assertIsNotNone(libc_name) if is_resource_enabled("printing"): print find_library("kernel32") print find_library("user32") if os.name == "nt": windll.kernel32.GetModuleHandleW windll["kernel32"].GetModuleHandleW windll.LoadLibrary("kernel32").GetModuleHandleW WinDLL("kernel32").GetModuleHandleW elif os.name == "ce": windll.coredll.GetModuleHandleW windll["coredll"].GetModuleHandleW windll.LoadLibrary("coredll").GetModuleHandleW WinDLL("coredll").GetModuleHandleW
Example #13
Source File: test_loading.py From ironpython3 with Apache License 2.0 | 6 votes |
def test_load_library(self): self.assertIsNotNone(libc_name) if test.support.verbose: print(find_library("kernel32")) print(find_library("user32")) if os.name == "nt": windll.kernel32.GetModuleHandleW windll["kernel32"].GetModuleHandleW windll.LoadLibrary("kernel32").GetModuleHandleW WinDLL("kernel32").GetModuleHandleW elif os.name == "ce": windll.coredll.GetModuleHandleW windll["coredll"].GetModuleHandleW windll.LoadLibrary("coredll").GetModuleHandleW WinDLL("coredll").GetModuleHandleW
Example #14
Source File: test_android.py From chaquopy with MIT License | 6 votes |
def test_ctypes(self): from ctypes.util import find_library libc = ctypes.CDLL(find_library("c")) liblog = ctypes.CDLL(find_library("log")) self.assertIsNone(find_library("nonexistent")) # Work around double-underscore mangling of __android_log_write. def assertHasSymbol(dll, name): self.assertIsNotNone(getattr(dll, name)) def assertNotHasSymbol(dll, name): with self.assertRaises(AttributeError): getattr(dll, name) assertHasSymbol(libc, "printf") assertHasSymbol(liblog, "__android_log_write") assertNotHasSymbol(libc, "__android_log_write") # Global search (https://bugs.python.org/issue34592): only works on newer API levels. if API_LEVEL >= 21: main = ctypes.CDLL(None) assertHasSymbol(main, "printf") assertHasSymbol(main, "__android_log_write") assertNotHasSymbol(main, "nonexistent") assertHasSymbol(ctypes.pythonapi, "PyObject_Str")
Example #15
Source File: ctypes_libsodium.py From ssr-ml with Apache License 2.0 | 5 votes |
def load_libsodium(): global loaded, libsodium, buf from ctypes.util import find_library for p in ('sodium',): libsodium_path = find_library(p) if libsodium_path: break else: raise Exception('libsodium not found') logging.info('loading libsodium from %s', libsodium_path) libsodium = CDLL(libsodium_path) libsodium.sodium_init.restype = c_int libsodium.crypto_stream_salsa20_xor_ic.restype = c_int libsodium.crypto_stream_salsa20_xor_ic.argtypes = (c_void_p, c_char_p, c_ulonglong, c_char_p, c_ulonglong, c_char_p) libsodium.crypto_stream_chacha20_xor_ic.restype = c_int libsodium.crypto_stream_chacha20_xor_ic.argtypes = (c_void_p, c_char_p, c_ulonglong, c_char_p, c_ulonglong, c_char_p) libsodium.sodium_init() buf = create_string_buffer(buf_size) loaded = True
Example #16
Source File: ctypes_libsodium.py From shadowsocksR-b with Apache License 2.0 | 5 votes |
def load_libsodium(): global loaded, libsodium, buf from ctypes.util import find_library for p in ('sodium',): libsodium_path = find_library(p) if libsodium_path: break else: raise Exception('libsodium not found') logging.info('loading libsodium from %s', libsodium_path) libsodium = CDLL(libsodium_path) libsodium.sodium_init.restype = c_int libsodium.crypto_stream_salsa20_xor_ic.restype = c_int libsodium.crypto_stream_salsa20_xor_ic.argtypes = (c_void_p, c_char_p, c_ulonglong, c_char_p, c_ulonglong, c_char_p) libsodium.crypto_stream_chacha20_xor_ic.restype = c_int libsodium.crypto_stream_chacha20_xor_ic.argtypes = (c_void_p, c_char_p, c_ulonglong, c_char_p, c_ulonglong, c_char_p) libsodium.sodium_init() buf = create_string_buffer(buf_size) loaded = True
Example #17
Source File: ctypes_openssl.py From ssr-ml with Apache License 2.0 | 5 votes |
def load_openssl(): global loaded, libcrypto, buf from ctypes.util import find_library for p in ('crypto', 'eay32', 'libeay32'): libcrypto_path = find_library(p) if libcrypto_path: break else: raise Exception('libcrypto(OpenSSL) not found') logging.info('loading libcrypto from %s', libcrypto_path) libcrypto = CDLL(libcrypto_path) libcrypto.EVP_get_cipherbyname.restype = c_void_p libcrypto.EVP_CIPHER_CTX_new.restype = c_void_p libcrypto.EVP_CipherInit_ex.argtypes = (c_void_p, c_void_p, c_char_p, c_char_p, c_char_p, c_int) libcrypto.EVP_CipherUpdate.argtypes = (c_void_p, c_void_p, c_void_p, c_char_p, c_int) libcrypto.EVP_CIPHER_CTX_cleanup.argtypes = (c_void_p,) libcrypto.EVP_CIPHER_CTX_free.argtypes = (c_void_p,) if hasattr(libcrypto, 'OpenSSL_add_all_ciphers'): libcrypto.OpenSSL_add_all_ciphers() buf = create_string_buffer(buf_size) loaded = True
Example #18
Source File: test_loading.py From datafari with Apache License 2.0 | 5 votes |
def test_find(self): for name in ("c", "m"): lib = find_library(name) if lib: cdll.LoadLibrary(lib) CDLL(lib)
Example #19
Source File: test_errno.py From datafari with Apache License 2.0 | 5 votes |
def test_open(self): libc_name = find_library("c") if libc_name is None: raise unittest.SkipTest("Unable to find C library") libc = CDLL(libc_name, use_errno=True) if os.name == "nt": libc_open = libc._open else: libc_open = libc.open libc_open.argtypes = c_char_p, c_int self.assertEqual(libc_open("", 0), -1) self.assertEqual(get_errno(), errno.ENOENT) self.assertEqual(set_errno(32), errno.ENOENT) self.assertEqual(get_errno(), 32) if threading: def _worker(): set_errno(0) libc = CDLL(libc_name, use_errno=False) if os.name == "nt": libc_open = libc._open else: libc_open = libc.open libc_open.argtypes = c_char_p, c_int self.assertEqual(libc_open("", 0), -1) self.assertEqual(get_errno(), 0) t = threading.Thread(target=_worker) t.start() t.join() self.assertEqual(get_errno(), 32) set_errno(0)
Example #20
Source File: ipc.py From pymapd with Apache License 2.0 | 5 votes |
def load_buffer(handle, size): if find_library('c') is None: if platform.system() == "Windows": assert "IPC uses POSIX shared memory, which is not supported \ on Windows" else: # libc should be available by default on linux/darwin systems assert "ctypes.find_library('c') did not find libc, which is \ required for IPC" # OmniSci passes struct as bytes, convert to int shmkey = struct.unpack('<L', handle)[0] # Take key from OmniSci, get identifier of shared memory segment # If shmid is -1, an error has occured shmid = shmget(shmkey, size, 0) if shmid == -1: raise ValueError("Invalid shared memory key {}".format(shmkey)) # With id of shared memory segment, attach to Python process # None lets system choose suitable unused address ptr = shmat(shmid, None, 0) # With ptr as shared memory segment's start address, make arrow buffer pabuff = pa.foreign_buffer(ptr, size, None) # Return the ptr value as well as the buffer, as its too early here # to release shared memory from Python return (pabuff, ptr)
Example #21
Source File: test_callbacks.py From datafari with Apache License 2.0 | 5 votes |
def test_issue_8959_a(self): from ctypes.util import find_library libc_path = find_library("c") if not libc_path: self.skipTest('could not find libc') libc = CDLL(libc_path) @CFUNCTYPE(c_int, POINTER(c_int), POINTER(c_int)) def cmp_func(a, b): return a[0] - b[0] array = (c_int * 5)(5, 1, 99, 7, 33) libc.qsort(array, len(array), sizeof(c_int), cmp_func) self.assertEqual(array[:], [1, 5, 7, 33, 99])
Example #22
Source File: loading.py From pygmt with BSD 3-Clause "New" or "Revised" License | 5 votes |
def clib_full_names(env=None): """ Return the full path of GMT's shared library for the current OS. Parameters ---------- env : dict or None A dictionary containing the environment variables. If ``None``, will default to ``os.environ``. Returns ------- lib_fullnames: list of str List of possible full names of GMT's shared library. """ if env is None: env = os.environ libnames = clib_names(os_name=sys.platform) # e.g. libgmt.so, libgmt.dylib, gmt.dll libpath = env.get("GMT_LIBRARY_PATH", "") # e.g. $HOME/miniconda/envs/pygmt/lib lib_fullnames = [os.path.join(libpath, libname) for libname in libnames] # Search for DLLs in PATH if GMT_LIBRARY_PATH is not defined [Windows only] if not libpath and sys.platform == "win32": for libname in libnames: libfullpath = find_library(libname) if libfullpath: lib_fullnames.append(libfullpath) return lib_fullnames
Example #23
Source File: ctypes_openssl.py From shadowsocksR-b with Apache License 2.0 | 5 votes |
def load_openssl(): global loaded, libcrypto, buf from ctypes.util import find_library for p in ('crypto', 'eay32', 'libeay32'): libcrypto_path = find_library(p) if libcrypto_path: break else: raise Exception('libcrypto(OpenSSL) not found') logging.info('loading libcrypto from %s', libcrypto_path) libcrypto = CDLL(libcrypto_path) libcrypto.EVP_get_cipherbyname.restype = c_void_p libcrypto.EVP_CIPHER_CTX_new.restype = c_void_p libcrypto.EVP_CipherInit_ex.argtypes = (c_void_p, c_void_p, c_char_p, c_char_p, c_char_p, c_int) libcrypto.EVP_CipherUpdate.argtypes = (c_void_p, c_void_p, c_void_p, c_char_p, c_int) libcrypto.EVP_CIPHER_CTX_cleanup.argtypes = (c_void_p,) libcrypto.EVP_CIPHER_CTX_free.argtypes = (c_void_p,) if hasattr(libcrypto, 'OpenSSL_add_all_ciphers'): libcrypto.OpenSSL_add_all_ciphers() buf = create_string_buffer(buf_size) loaded = True
Example #24
Source File: ctypes_libsodium.py From Dockerfiles with Apache License 2.0 | 5 votes |
def load_libsodium(): global loaded, libsodium, buf from ctypes.util import find_library for p in ('sodium',): libsodium_path = find_library(p) if libsodium_path: break else: raise Exception('libsodium not found') logging.info('loading libsodium from %s', libsodium_path) libsodium = CDLL(libsodium_path) libsodium.sodium_init.restype = c_int libsodium.crypto_stream_salsa20_xor_ic.restype = c_int libsodium.crypto_stream_salsa20_xor_ic.argtypes = (c_void_p, c_char_p, c_ulonglong, c_char_p, c_ulonglong, c_char_p) libsodium.crypto_stream_chacha20_xor_ic.restype = c_int libsodium.crypto_stream_chacha20_xor_ic.argtypes = (c_void_p, c_char_p, c_ulonglong, c_char_p, c_ulonglong, c_char_p) libsodium.sodium_init() buf = create_string_buffer(buf_size) loaded = True
Example #25
Source File: _buildcfg.py From go2mapillary with GNU General Public License v3.0 | 5 votes |
def load_dll(libname, fallbacks=None): lib = find_library(libname) dll = None if lib is not None: try: log.debug("Trying `CDLL(%s)`", lib) dll = CDLL(lib) except OSError: log.warn("Failed `CDLL(%s)`", lib) pass if not dll and fallbacks is not None: for name in fallbacks: try: log.debug("Trying `CDLL(%s)`", name) dll = CDLL(name) except OSError: # move on to the next fallback log.warn("Failed `CDLL(%s)`", name) pass if dll: log.debug("Library path: %r", lib or name) log.debug("DLL: %r", dll) return dll else: # No shared library was loaded. Raise OSError. raise OSError( "Could not find library {0} or load any of its variants {1}".format( libname, fallbacks or []))
Example #26
Source File: geos.py From go2mapillary with GNU General Public License v3.0 | 5 votes |
def load_dll(libname, fallbacks=None, mode=DEFAULT_MODE): lib = find_library(libname) dll = None if lib is not None: try: LOG.debug("Trying `CDLL(%s)`", lib) dll = CDLL(lib, mode=mode) except OSError: LOG.warn("Failed `CDLL(%s)`", lib) pass if not dll and fallbacks is not None: for name in fallbacks: try: LOG.debug("Trying `CDLL(%s)`", name) dll = CDLL(name, mode=mode) except OSError: # move on to the next fallback LOG.warn("Failed `CDLL(%s)`", name) pass if dll: LOG.debug("Library path: %r", lib or name) LOG.debug("DLL: %r", dll) return dll else: # No shared library was loaded. Raise OSError. raise OSError( "Could not find lib {0} or load any of its variants {1}.".format( libname, fallbacks or []))
Example #27
Source File: magic.py From insights-core with Apache License 2.0 | 5 votes |
def _init(): """ Loads the shared library through ctypes and returns a library L{ctypes.CDLL} instance """ return ctypes.cdll.LoadLibrary(find_library('magic'))
Example #28
Source File: test_callbacks.py From ironpython3 with Apache License 2.0 | 5 votes |
def test_issue_8959_a(self): from ctypes.util import find_library libc_path = find_library("c") if not libc_path: self.skipTest('could not find libc') libc = CDLL(libc_path) @CFUNCTYPE(c_int, POINTER(c_int), POINTER(c_int)) def cmp_func(a, b): return a[0] - b[0] array = (c_int * 5)(5, 1, 99, 7, 33) libc.qsort(array, len(array), sizeof(c_int), cmp_func) self.assertEqual(array[:], [1, 5, 7, 33, 99])
Example #29
Source File: test_find.py From ironpython3 with Apache License 2.0 | 5 votes |
def setUpClass(cls): lib_gl = lib_glu = lib_gle = None if sys.platform == "win32": lib_gl = find_library("OpenGL32") lib_glu = find_library("Glu32") elif sys.platform == "darwin": lib_gl = lib_glu = find_library("OpenGL") else: lib_gl = find_library("GL") lib_glu = find_library("GLU") lib_gle = find_library("gle") ## print, for debugging if test.support.verbose: print("OpenGL libraries:") for item in (("GL", lib_gl), ("GLU", lib_glu), ("gle", lib_gle)): print("\t", item) cls.gl = cls.glu = cls.gle = None if lib_gl: try: cls.gl = CDLL(lib_gl, mode=RTLD_GLOBAL) except OSError: pass if lib_glu: try: cls.glu = CDLL(lib_glu, RTLD_GLOBAL) except OSError: pass if lib_gle: try: cls.gle = CDLL(lib_gle) except OSError: pass
Example #30
Source File: test_loading.py From ironpython3 with Apache License 2.0 | 5 votes |
def test_find(self): for name in ("c", "m"): lib = find_library(name) if lib: cdll.LoadLibrary(lib) CDLL(lib)