gpt4 book ai didi

python cdll 找不到模块

转载 作者:行者123 更新时间:2023-11-28 22:05:46 24 4
gpt4 key购买 nike

我有一个由两个 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)

关于python cdll 找不到模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4755303/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com