Windows 上缺少“magic”库的文件

2023-11-25

我需要获取 Windows 上某些文件的 mime 类型,所以我已经安装了python-magic(在 32 位 python 2.7.3 上)。
这取决于unixmagic图书馆。
作者指示获取regex2.dll, zlib1.dll and magic1.dll来自 gnuwin32 项目。 所以我将文件保存到一个文件夹并将该文件夹添加到我的系统中PATH.
现在当我执行magic方法,我得到丢失文件异常:

import magic
print(magic.Magic())

Traceback (most recent call last):
File "C:/Users/Admin/PycharmProjects/lex/lex.py", line 367, in <module>
  test_magic()
File "C:/Users/Admin/PycharmProjects/lex/lex.py", line 364, in test_magic
  print(magic.Magic())
File "C:\Python27\lib\site-packages\python_magic-0.4.3-py2.7.egg\magic.py", line 52, in __init__
  magic_load(self.cookie, magic_file)
File "C:\Python27\lib\site-packages\python_magic-0.4.3-py2.7.egg\magic.py", line 188, in magic_load
  return _magic_load(cookie, coerce_filename(filename))
File "C:\Python27\lib\site-packages\python_magic-0.4.3-py2.7.egg\magic.py", line 139, in errorcheck
  raise MagicException(err)
magic.MagicException: could not find any magic files!

DLL 位于 PATH 中,我尝试调试并magic1.dll位置正确,但库内某处抛出异常。
在 - 的里面gnuwin32我找到的包magic and magic.mgc。我把它们放在同一个文件夹中,然后得到WindowsError: [Error 126] on

libmagic = None  
# Let's try to find magic or magic1  
dll = ctypes.util.find_library('magic') or ctypes.util.find_library('magic1')  

# This is necessary because find_library returns None if it doesn't find the library
if dll:
    libmagic = ctypes.CDLL(dll)

这显然是因为 python 尝试打开magic文件为 dll,纯文本。添加后.dll到代码中的文件名我得到相同的magic.MagicException: could not find any magic files!.
我缺少什么文件?

UPDATE:

C:\Users\Admin>file C:\123.zip -m magic
file: could not find any magic files!

C:\Users\Admin>file C:\123.zip -m "C:\@DEV\@LIB\@Magic\GetGnuWin32\bin\magic"
C:\123.zip; ASCII text, with no line terminators

C:\Users\Admin>cd C:\@DEV\@LIB\@Magic\GetGnuWin32\bin

C:\@DEV\@LIB\@Magic\GetGnuWin32\bin>file C:\123.zip -m magic
C:\123.zip; ASCII text, with no line terminators

更新2(已解决):

print(magic.Magic())
magic.MagicException: could not find any magic files!

print(magic.Magic(magic_file = 'magic'))
<magic.Magic instance at 0x02A5E198>

只需要明确指定文件


对于未来的谷歌访问者:另一个解决方案是在系统设置中设置%MAGIC%环境变量以指向魔术文件,对我来说是:

"c:\Program Files (x86)\GnuWin32\share\misc\magic"

无需在程序中硬编码路径!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows 上缺少“magic”库的文件 的相关文章

  • 将非常大的Python列表输出保存到mysql表中

    我想将 python 生成的列表的输出保存在 mysql 数据库的表中 该表如下所示 mysql 中的 myapc8 表 https i stack imgur com 4B4Hz png这是Python代码 在此输入图像描述 https
  • 反编译Python 3.9.2的PYC文件[重复]

    这个问题在这里已经有答案了 目前 我有一个 3 9 2 版本的 python 的 PYC 文件 P S 这适用于所有 3 9 及更高版本 我正在尝试反编译 PYC 文件 但它显示错误 因为 uncompyle6 或者更确切地说 新版本 de
  • Chromium 中的 MP4 编解码器支持

    我们已将 Chromium 嵌入式框架集成到我们的 Windows 游戏中 以允许我们从应用程序内渲染网页 并且一切正常 除了 MP4 视频 据我所知 由于许可问题 Chromium 不包含此编解码器 但任何人都可以提供有关我们如何添加支持
  • Matplotlib:如何有效地将大量线段着色为独立渐变

    Python 绘图库 如何有效地将大量线段着色为独立渐变 已经 阅读this https stackoverflow com questions 8500700 how to plot a gradient color line in ma
  • 如何过滤 Pandas GroupBy 对象并获取 GroupBy 对象?

    当对 Pandas groupby 操作的结果执行过滤时 它返回一个数据帧 但假设我想执行进一步的分组计算 我必须再次调用 groupby 这似乎有点绕 有更惯用的方法吗 EDIT 为了说明我在说什么 我们无耻地从 Pandas 文档中窃取
  • 类型错误:需要二进制或 unicode 字符串,得到 618.0

    I ve been trying to implement this ML Linear Model into my dataset https www tensorflow org tutorials estimator linear L
  • Arcpy 模数在 Pycharm 中不显示

    如何将 Arcpy 集成到 Pycharm 中 我尝试通过导入模块但它没有显示 我确实知道该模块仅适用于 2 x python arcpy 在 PyPi Python 包索引 上不可用 因此无法通过 pip 安装 要使用 arcpy 您需要
  • Python将文本文件解析为嵌套字典

    考虑以下数据结构 HEADER1 key value key value HEADER2 key value key value HEADER3 key value HEADER4 key value key value 原始数据中没有缩进
  • 调整屏幕和字体设置的 WPF 应用程序(或者,我如何将 DLU 与 WPF 中的单元相关联?)

    在MFC中 对话框的设计使用DLUs http msdn microsoft com en us library bb847924 aspx 在 WPF 中 我们以 1 96 英寸为单位指定 虽然这确实会缩放窗口和视觉元素 但我们如何使 W
  • Python 中维基百科 API 中的 DisambiguationError 和 GuessedAtParserWarning

    我想获得维基百科与搜索词相关的可能且可接受的名称列表 在这种情况下是 电晕 当输入以下内容时 print wikipedia summary Corona 这给出了以下输出 home virej local lib python3 8 si
  • Docker Desktop 不会切换到 Windows 容器(在 Windows 10 上)

    我有 Windows 10 专业版 版本 21H1 BIOS 中已启用虚拟化 Hyper V 正在运行 我已经安装了适用于 Windows 的 Docker Desktop 如上所述here https docs docker com de
  • 可以使用哪些技术来衡量 pandas/numpy 解决方案的性能

    Question 如何简洁全面地衡量下面各个功能的性能 Example 考虑数据框df df pd DataFrame Group list QLCKPXNLNTIXAWYMWACA Value 29 52 71 51 45 76 68 6
  • 为什么 __dict__ 和 __weakref__ 类从未在 Python 中重新定义?

    类创建似乎从来没有re 定义 dict and weakref class属性 即 如果它们已经存在于超类的字典中 则它们不会添加到其子类的字典中 但始终re 定义 doc and module class属性 为什么 gt gt gt c
  • minizinc python 安装

    我通过 anaconda 提示符在 python 上安装了 minizinc 就像其他软件包一样 pip install minizinc 该软件包表示已成功安装 我可以导入该模块 但是 我正在遵循基本示例https minizinc py
  • 如何给URL添加变量?

    我正在尝试从网站收集数据 我有一个 Excel 文件 其中包含该网站的所有不同扩展名 F i www example com example2 我有一个脚本可以成功从网站中提取 HTML 但现在我想为所有扩展自动执行此操作 然而 当我说 s
  • Django 管理器链接

    我想知道是否有可能 如果可以的话 如何 将多个管理器链接在一起以生成受两个单独管理器影响的查询集 我将解释我正在研究的具体示例 我有多个抽象模型类 用于为其他模型提供小型的特定功能 其中两个模型是DeleteMixin 和GlobalMix
  • rpy2 无法加载外部库

    希望有人能帮忙解决这个问题 R版本 2 14 1rpy2版本 2 2 5蟒蛇版本 2 7 3 一直在尝试在 python 脚本中使用 rpy2 加载 R venneuler 包 该包以 rJava 作为依赖项 venneuler 和 rJa
  • Windows 10:任务栏中的图标大小错误

    从 Windows 10 开始 任务栏中的图标大小似乎为 24x24px 如果 Windows 选择图标文件中的 24px 版本进行显示 那么这不会有问题 但它选择了 32px 版本并将其缩小 这会导致丑陋的伪像 尤其是当你的图标中有直线时
  • 将键码转换为相关的显示字符

    在 C Windows Forms 项目中 我有一个不提供 KeyPressed 事件的控件 它是一个 COM 控件 ESRI 映射 它仅提供 KeyUp 和 KeyDown 事件 包含关键事件参数 http msdn microsoft
  • 将 Keras 集成到 SKLearn 管道?

    我有一个 sklearn 管道 对异构数据类型 布尔 分类 数字 文本 执行特征工程 并想尝试使用神经网络作为我的学习算法来拟合模型 我遇到了输入数据形状的一些问题 我想知道我想做的事情是否可能 或者我是否应该尝试不同的方法 我尝试了几种不

随机推荐

  • 如何通过索引从字符串中获取字符?

    假设我有一个由 x 个未知字符组成的字符串 我怎样才能得到 char nr 13 或字符编号 x 14 首先确认需要的数量是有效索引对于从 begin 或 end 开始的字符串 那么您可以简单地使用数组下标表示法 使用len s 获取字符串
  • 如何从 C# 调用 MS Access 数据库宏

    我只是想知道是否可以从外部调用 MS Access 数据库中的模块函数或宏 使用C Thanks 是的 您可以运行宏 This Article 仅可通过 archive org 获取 显示您需要的一切
  • 我们如何计算处理时间?

    我创建了一个PopupPanel并已展示出来 我想在一分钟过去后隐藏它 在那一分钟内 该过程不应停止或暂停 我怎样才能实现这种行为 GWT 有自己的实现Timer 这是一个非常小的例子 public void onModuleLoad fi
  • 使用 Node.js 管理 sdk 创建令牌时的 Firebase REST 身份验证

    我知道这个问题在这里被问了很多 但我似乎仍然找不到可以解决我的问题的确切答案 我希望通过添加 access token 参数使用 REST 调用访问 Firebase access token 是使用 Node js Admin SDK 创
  • MICE 不会估算某些列,但也不会给出错误

    我知道以前曾问过类似的问题 例如 1 2 3 但我还是不明白为什么mice即使我尝试像示例中那样的无条件均值 也无法预测缺失值1 我的稀疏矩阵是 k1 k3 k5 k6 k7 k8 k11 k12 k13 k14 k15 1 NA NA N
  • 将单词(字符串)转换为 Int

    我确信这已经被做过一百次了 但我希望有一种非常简单的方法来完成这个任务 我想将单词更改为整数 就像下面的例子 One 1 Two 2 Three 3 所以基本上 如果我有字符串 One 它会转换为 1 即使我可以返回字符串 1 我也可以将其
  • Java:如何查看代码的哪些部分运行最多? (分析)

    我正在用 Java 编写一个简单的跳棋游戏 当我将鼠标悬停在主板上时 我的处理器性能提升至 50 核心上为 100 我想找出我的代码的哪一部分 假设是我的错 在此期间正在执行 我尝试过调试 但在这种情况下逐步调试效果不太好 有没有什么工具可
  • 获取当前正在运行的活动的实例?

    我想做的是将运动事件分派给当前正在运行的活动 我从这段代码中获取了当前活动的 ComponentName ActivityManager am ActivityManager getSystemService ACTIVITY SERVIC
  • 排除类型的重载的类型注释(某些类型与其他类型)

    我正在尝试使用 overload传达调用函数的不同方式 但是通过简单的代码可以轻松传达什么else声明在类型注释中是不可能的 如果没有 else MyPy 正确地 会抱怨重载版本不匹配 例如 请参见下面的代码片段 error Overloa
  • 错误 X3000:着色器文件中存在非法字符

    我粘贴了一行着色器代码 现在我的项目无法工作 我删除了受污染的代码行 我已经按照 VS Notepad 和 Notepad 的建议从头开始多次重写着色器Unity 论坛 我在 Notepad 中使用了十六进制编辑器视图来排除前两个字节不是0
  • CA2000 将对象引用传递给 C# 中的基本构造函数

    当我通过 Visual Studio 的代码分析实用程序运行一些代码时 我收到一条警告 我不确定如何解决 也许这里有人遇到过类似的问题 解决了它 并愿意分享他们的见解 我正在编写一个在 DataGridView 控件中使用的自定义绘制单元格
  • 为什么VS中的Debug模式比Release慢?

    我已经用谷歌搜索过这个问题 通常答案相当复杂 而且我并不真正理解所有的行话 有没有简单的解释为什么调试模式这么慢 为什么不总是在发布版本中运行呢 调试模式已关闭所有优化 以确保连接的调试器按预期工作 一个版本将会开启很多优化 比这更简单的我
  • 清除 Java 缓存

    我想知道如何使用 Java 代码或 CMD 行代码清除 Java 缓存 这应该在 Windows 7 及以上版本的 Microsoft Windows 计算机上完成 这应该在多台计算机上完成 因此文件路径会有所不同 该应用程序使用 Java
  • 查询GAE数据存储时如何修复索引错误?

    当我尝试对按日期排序的数据存储运行查询时 出现以下错误 NeedIndexError no matching index found The suggested index for this query is kind Message pr
  • 根据 bin 大小将列表分为多个列表

    我有一个包含超过 100 000 个值的列表 我需要根据特定的 bin 宽度 例如 0 1 将列表划分为多个较小的列表 谁能帮我写一个Python程序来做到这一点 我的清单看起来像这样 0 234 0 04325 0 43134 0 315
  • .R 脚本文件位于 PC 上的哪里?

    我想找到用于 R 中计算的脚本 R 文件的位置 我知道通过输入对象函数 我将获得正在运行的代码 然后我可以复制 编辑并将其另存为新的脚本文件并使用它 要求查找 foo R 文件的原因是 好奇心 了解数值计算中使用的算法是什么 更直接的是 函
  • C++ Visual Studio 编译错误

    我收到以下编译错误 致命错误 C1189 error 错误 使用 C 运行时库内部头文件 我对此完全不知道 谁能解释一下吗 完整的错误 C Program Files Microsoft Visual Studio 8 VC ce incl
  • 使用一次性使用令牌将 Auth0 实现到 chrome 扩展中

    我正在制作一个 chrome 扩展程序 我想为我的 chrome 扩展程序创建一个安全方法 以阻止它在没有我参与的情况下被共享 我有一个想法在某个地方生成一个令牌 通常是一些后端 也许是网站的服务器 该服务器获取我用 worpress 构建
  • 跨不同类加载器覆盖默认访问器方法会破坏多态性

    我在尝试使用以下方法重写方法时遇到了奇怪的行为默认访问器 ex void run 根据Java规范 如果类属于同一个包 则类可以使用或覆盖基类的默认成员 当所有类从同一个类加载器加载时 一切正常 但是如果我尝试从中加载子类separate类
  • Windows 上缺少“magic”库的文件

    我需要获取 Windows 上某些文件的 mime 类型 所以我已经安装了python magic 在 32 位 python 2 7 3 上 这取决于unixmagic图书馆 作者指示获取regex2 dll zlib1 dll and