我有一个由两个 dll 文件和一个 python 包装器组成的库。
我目前的代码基于这三个文件,它们与我的主 python 文件位于同一父目录中。我现在尝试在继续开发之前重构一些东西,并希望将所述库代码移动到它自己的 lib/ 目录中。不幸的是,我尝试过的一切都没有帮助。
import ctypes
_lib = ctypes.cdll["./my.dll"]
位于 python 包装文件中的上述代码可以在其原始位置完美加载 dll。我尝试了多种将其加载到新位置的方法,例如:
from ctypes import *
import os
path = os.path.dirname(os.path.realpath(__file__))
_lib = ctypes.CDLL(os.path.join(path, 'my.dll'))
然而 python 总是抛出一个异常,说无法找到模块。我已经复制并粘贴了路径以验证它实际上是 .dll 文件的有效绝对路径
有谁知道我需要做什么才能将该库重新定位到子文件夹?我总是可以把它留在原处,但我只是讨厌混乱。
我在尝试加载时遇到了同样的问题magic1.dll
- 这个文件依赖于另外两个 .dll,当我从当前工作目录移动 magic1.dll 时 - 我无法加载。
此解决方法有助于:
pathToWin32Environment = os.getcwd() + "/environment-win32/libmagic/"
pathToDll = pathToWin32Environment + "magic1.dll"
if not os.path.exists(pathToDll):
#Give up if none of the above succeeded:
raise Exception('Could not locate ' + pathToDll)
curr_dir_before = os.getcwd()
os.chdir(pathToWin32Environment)
libmagic = ctypes.CDLL('magic1.dll')
os.chdir(curr_dir_before)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)