避免必须将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")
谢谢!经过上面的尝试后发现'find_library()'在'ctypes.util'而不是'ctypes'。 – Acorn
橡子,官方文档同意你,所以我编辑了这篇文章。 http://docs.python.org/library/ctypes.html – user9876
我也刚刚意识到我没有将CDLL的返回值分配给任何东西,所以它对于ctypes或Python来说是没用的。 – PaulMcG