问题标签 [libmagic]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1764 浏览

python - 如何让文件魔术模块在 Alpine Linux 上运行?

我正在尝试在 Alpine Linux 上使用 file-magic,并且AttributeError: Symbol not found: magic_open每当我导入magic模块时它都会不断爆炸。

我注意到有两个 Python 模块具有相同的magic命名空间,但是由于大多数 Linux 发行版似乎都在 usingfile-magic而不是python-magic,我决定让我的模块依赖于前者。但是在 Alpine 上,python-magic似乎只能工作:

设置 Alpine 并安装 libmagic:

安装文件魔术:

但它不起作用:

将 file-magic 换成 python-magic:

有用:

我知道每个发行版都有它的怪癖,我想适应,但我现在不知道该怎么做。有没有办法定义模块的 setup.py 来解决这种情况?有没有办法调整 Docker 容器以使用文件魔术?在这种情况下,正确的做法是什么?

0 投票
1 回答
367 浏览

python - 使用 eyed3 模块时的 ImportError (libmagic)

我是 Python 的新手,正在尝试使用 eyed3 模块。这是我的代码。

我遇到了异常

如以下链接中所述,我安装了“python-magic”,但异常仍然存在。 pip 安装 eyeD3 模块。找不到 libmagic

在 Visual Studio Code 中,我尝试更改解释器(Ctrl+Shift+P),但这也无济于事

0 投票
1 回答
1463 浏览

python - setup.py 中的条件要求

我正在编写一个依赖于file-magic的,它适用于大多数平台,但在 Alpine Linux 中,file-magic 不起作用,所以我需要改用python-magic库。

现在我知道如何编写自己的代码来处理不同的 Python 库 API,但我不知道如何编写自己的代码setup.cfgsetup.py根据我们正在安装的系统有不同的要求。

我认为最好的选择是使用PEP 508规则,但我不知道如何说“libmagic like Alpine”或该语法中的内容,更不用说这是否可以在包的 setup.py 中使用。确实,我什至无法弄清楚如何在不安装file-magic和看着它死掉的情况下分辨架构之间的区别:-(

当然,这种事情必须有最佳实践吗?

更新

在下面蒂姆的一些更广泛的理解之后,我拼凑了这个黑客来让它工作:

这允许 的声明性语法setup.cfg,但install_requires如果安装目标是 Alpine 系统,则会调整值。

0 投票
0 回答
833 浏览

python - 检查文件体系结构的通用方法

有没有一种通用的方法来检查二进制文件(可以是 ELF、Dwarf、PE 等)的平台(32 位/64 位)和架构(powerpc、arm 等)?

我知道几乎每个文件(elf 或 pe)都有一个标头,说明哪个体系结构可以执行它,但是有没有一种通用的方法可以从所有二进制文件中获取这些信息?

我尝试使用返回所有这些信息的魔法,但它以字符串形式返回 -

现在,我正在使用正则表达式从中提取信息,但我不确定是否总是可以依靠它,因为魔法的字符串输出可能不同。

0 投票
1 回答
882 浏览

python - Django 用 python-magic (libmagic) 来验证上传的文件

我正在尝试在 django 中保存上传文件的 mime 类型。我不需要拒绝某些类型的文件,我只需要跟踪上传文件的 mime 类型。我正在这样做:

问题是filetype = magic.from_file(self.document.read())抛出错误:“ValueError:嵌入式空字节”。该文件绝对没有损坏(在这种情况下,它是一个 png,所以我期待图像/png)。from_file 肯定似乎想要一个字节对象,而 self.document.read() 肯定会产生字节,所以我不确定问题是什么......

0 投票
0 回答
219 浏览

c - 问题编译 libmagic 程序,magic_open,MAGIC_MIME 和 MAGIC_CHECK 未声明

我一直在尝试在我的程序中使用magic.hmagiclib来帮助识别文件类型。但是,当我尝试编译程序时,它会声明magic_openMAGIC_MIME并且MAGIC_CHECK未声明会导致错误。

我尝试了以下命令(magicTest.c作为我的程序)

没有成功

以下是我收到的实际错误和输出

任何帮助将不胜感激!

编辑

按照jww的建议运行命令后,如下图:

我的输出是:

再次感谢!

0 投票
0 回答
459 浏览

python - 使用 python magic 根据 MIME 类型过滤文件

我在一个目录中有一组文件,我正在使用 python-magic 库来过滤掉“text/plain”类型的文件并删除所有非“text/plain”文件。下面是我正在使用的代码

我能够在一小部分文件上成功运行脚本。但是,当我在包含大约 40000 个文件的目录上运行脚本时,出现以下错误。

我不确定是什么问题。有人可以帮我解决这个问题,或者是否有任何替代方法可以进行上述操作。

更新:尝试以下评论中所述的一些方法后,问题仍然存在。

0 投票
1 回答
27 浏览

c - 为什么我不能在我的代码中使用 `libmime`?(OSError:mime.so:未定义符号:magic_load)

我尝试在我的 c 代码中使用 libmagic。我像这样()编译以下代码gcc mime.c -shared -o mime.so。不幸的是,它在使用它时抛出了这个错误:OSError: mime.so: undefined symbol: magic_load

哑剧.c

我怎样才能解决这个问题?

0 投票
1 回答
306 浏览

dockerfile - 获取要求:libMagickWand.so.5()(64bit) 异常

我正在尝试使用 docker 文件在 CentOS 上安装 Install PHP 7.1,但看起来有些错误总是停止,

Dockerfile:

错误:

关于发生了什么以及出了什么问题的任何想法?我是否缺少 dockerFile 中的任何配置?

0 投票
1 回答
72 浏览

file-type - 为 libmagic 提供一个魔法数据库

我有一个简单的 C 代码,它返回给定文件的文件类型。我可以从命令行给它任何文件名,它会返回文件类型:

问题是我不想为此依赖包文件。如果我重命名/usr/share/file/misc/magic.mgc为其他名称,它将不起作用。手册页说它是一个编译文件,也可能只有未编译的数据库。

所以我想将文件复制magic.mgc到本地目录并想按原样运行编译的程序。

是否可以将本地魔术数据库传递给C程序,使其不依赖系统提供的数据库?