diff --git a/_nanomsg_ctypes/__init__.py b/_nanomsg_ctypes/__init__.py index 43aefc1..d25a43a 100644 --- a/_nanomsg_ctypes/__init__.py +++ b/_nanomsg_ctypes/__init__.py @@ -2,18 +2,19 @@ unicode_literals import ctypes +import os import platform import sys if sys.platform in ('win32', 'cygwin'): _functype = ctypes.WINFUNCTYPE - _lib = ctypes.windll.nanomsg + _lib = ctypes.windll.LoadLibrary(os.environ.get('NN_CTYPES_LIB_PATH', 'nanomsg')) elif sys.platform == 'darwin': _functype = ctypes.CFUNCTYPE - _lib = ctypes.cdll.LoadLibrary('libnanomsg.dylib') + _lib = ctypes.cdll.LoadLibrary(os.environ.get('NN_CTYPES_LIB_PATH', 'libnanomsg.dylib')) else: _functype = ctypes.CFUNCTYPE - _lib = ctypes.cdll.LoadLibrary('libnanomsg.so') + _lib = ctypes.cdll.LoadLibrary(os.environ.get('NN_CTYPES_LIB_PATH', 'libnanomsg.so')) def _c_func_wrapper_factory(cdecl_text): @@ -272,9 +273,11 @@ def nn_recv(socket, *args): try: if sys.platform in ('win32', 'cygwin'): - _nclib = ctypes.windll.nanoconfig + _nclib = ctypes.windll.LoadLibrary(os.environ.get('NN_CTYPES_NCLIB_PATH', 'nanoconfig')) + elif sys.platform == 'darwin': + _nclib = ctypes.cdll.LoadLibrary(os.environ.get('NN_CTYPES_NCLIB_PATH', 'libnanoconfig.dylib')) else: - _nclib = ctypes.cdll.LoadLibrary('libnanoconfig.so') + _nclib = ctypes.cdll.LoadLibrary(os.environ.get('NN_CTYPES_NCLIB_PATH', 'libnanoconfig.so')) except OSError: pass # No nanoconfig, sorry else: