python cdll找不到模块

2024-01-15

我有一个由两个 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(使用前将#替换为@)

python cdll找不到模块 的相关文章

随机推荐

  • javascript中相对路径和绝对路径的区别

    有一些小的澄清 据我所知 这些是相对路径和绝对路径 Completely relative img src kitten png Absolute in all respects img src http www foo com image
  • 位置为绝对的元素上的垂直空间

    我如何制作元素position absolute and 动态高度仅使用 css 占据垂直空间 我可以使用容器和显示方面的技巧吗 不幸的是 根据定义 使用绝对定位意味着您的元素不再占用空间 所以不行 只能通过css没有办法做到这一点 您当然
  • 如何检查多值参数中是否选择了某个值

    在 SSRS 2008 中 我使用多值参数为特定参数选择多个值 在我的报告中 我有条件格式 如果选择了该项目 则特定标签必须为蓝色 否则它会保持黑色 我的直觉是尝试使用 SQL 方式 但我错了 Switch Fields groupType
  • 在 C++ 中返回错误代码的正确方法是什么

    我正在使用错误代码来处理我的 C 项目中的错误 问题是如何从应该返回某些变量 对象的函数返回错误代码 考虑一下 long val myobject doSomething 这里 myobject 是某个类的对象 如果 doSomething
  • 以编程方式实现一个接口,该接口以各种指定的方式组合同一接口的一些实例

    实现以各种指定方式组合同一接口的一些实例的接口的最佳方法是什么 我需要对多个接口执行此操作 并且希望最大限度地减少样板文件并仍然实现良好的效率 因为我需要为关键的生产系统执行此操作 这是问题的草图 抽象地说 我有一个通用的组合器类 它接受实
  • 在node-sqlite3中导入CSV文件

    我在我的网络应用程序中使用 npm sqlite3 包来创建一个模拟餐厅 当我的本地服务器启动时 我正在创建一个menuItems table var db new sqlite3 Database memory db serialize
  • Angular 2获取路线没有路线提供者

    在 Angular 2 中我希望能够使用route path 获取路径 在组件构造函数内我有 constructor private route Route 所以我希望能够致电 this route path 对于应用程序引导我得到 boo
  • std::any 跨越 mingw 中的共享库边界

    我在跨共享库边界使用 mingw 的 libstdc 的 std any 实现时偶然发现了一个问题 它产生一个std bad any cast显然不应该 我相信 我使用 mingw w64 gcc 7 并使用 std c 1z 编译代码 简
  • WCF 分块/流式传输

    我正在使用 WCF 想要将一个大文件从客户端上传到服务器 我已经调查并决定遵循以下概述的分块方法http msdn microsoft com en us library aa717050 aspx http msdn microsoft
  • HTML 隐藏控件有任何事件吗?比如onchange之类的?

    我可以将任何事件处理程序附加到 HTML 隐藏输入字段吗 基本上我想在隐藏输入字段值更改时运行一个函数 仅当用户在浏览器中执行事件时才会触发事件 因此如果
  • onclick="parent.location 在 Firefox 和 Chrome 中不起作用

    a a table class SectionHeader1 tbody tr td Customer Information td tr tbody table table class TheBox align center tbody
  • 无法使用反射和 .NET 5 顶级调用找到 Main 方法

    var pt Type GetType
  • 时间范围内的“一对多”关系完整性问题

    假设我有这样的表 CREATE TABLE foo id SERIAL PRIMARY KEY barid integer NOT NULL REFERENCES bar id bazid integer NOT NULL REFERENC
  • 为什么 CPU 上的 Keras LSTM 比 GPU 上快三倍?

    I use 这本来自 Kaggle 的笔记本 https www kaggle com sbongo for beginners tackling toxic using keras运行 LSTM 神经网络 我已经开始训练神经网络 我发现它
  • 注册令牌不是有效的 FCM 注册令牌

    我正在尝试使用从 Android 设备的 PassWallet 应用程序中保存的票证中获取的令牌向我的设备发送消息 该设备使用苹果钱包规范发 送更新通行证所需的所有信息 但是 我使用 FCM 发送通知 但收到此错误 注册令牌不是有效的 FC
  • Windows:如何将驱动器符号链接到另一个驱动器?

    我有一个客户 其数据已从 H 驱动器移至 I 驱动器 但他们的 Access 导出脚本似乎已将 H 驱动器硬编码为目标 即使它不再存在于新系统上 如何创建映射到 I 驱动器的 H 驱动器 我是一个 unix linux 人 我猜是这样的mk
  • 在.NET Core中编译Sass文件

    我正在尝试将 Sass 文件添加到 Visual Studio 2017 中的 NET Core 应用程序中 但是 在创建 scss 文件后 我找不到任何方法来编译它们 我筛选了 NPM 和 Bower 但都没有提供对 Sass 的支持 添
  • 如何在 Visual Studio 中禁用自动插入的“内联”关键字?

    我喜欢移动定义位置Visual Studio 2015 的重构功能除了一件事之外 它会自动插入inline关键字位于函数定义之前 所以我总是不得不自己删除它们 是这样的 重构之前 class GameLoop public void dra
  • 如何从 highstock 图表中提取数据

    假设我有一个示例 highstock 图表 例如this http www highcharts com stock demo basic line在网站中 我想知道是否可以单独从图表中提取数据 即图表是由第三人创建的 并且其他人无法访问图
  • python cdll找不到模块

    我有一个由两个 dll 文件和一个 python 包装器组成的库 我目前的代码基于这三个文件 它们与我的主 python 文件位于同一父目录中 我现在尝试在继续开发之前重构一些东西 并希望将所述库代码移动到它自己的 lib 目录中 不幸的是