避免必须将DLL放在CWD中

问题描述:

是否可以避免将DLL放在与使用它们的脚本相同的目录中?避免必须将DLL放在CWD中

我希望能够将DLL放在一个地方,并让它可以通过任何脚本访问。

ctypes.CDLL()似乎只发现DLL,如果他们在CWD。将它们放在sys.path中或System32中不起作用。

具体而言,我试图让UniCurses找到pdcurses.dll,而不在CWD中。

尝试:

pdcurses_path = ctypes.util.find_library('pdcurses.dll') 
if pdcurses_path: 
    pdcurses = ctypes.CDLL(pdcurses_path) 
else: 
    raise ImportError("could not locate pdcurses.dll library") 
+1

谢谢!经过上面的尝试后发现'find_library()'在'ctypes.util'而不是'ctypes'。 – Acorn

+0

橡子,官方文档同意你,所以我编辑了这篇文章。 http://docs.python.org/library/ctypes.html – user9876

+0

我也刚刚意识到我没有将CDLL的返回值分配给任何东西,所以它对于ctypes或Python来说是没用的。 – PaulMcG