问题标签 [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.
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 容器以使用文件魔术?在这种情况下,正确的做法是什么?
python - 使用 eyed3 模块时的 ImportError (libmagic)
我是 Python 的新手,正在尝试使用 eyed3 模块。这是我的代码。
我遇到了异常
如以下链接中所述,我安装了“python-magic”,但异常仍然存在。 pip 安装 eyeD3 模块。找不到 libmagic
在 Visual Studio Code 中,我尝试更改解释器(Ctrl+Shift+P),但这也无济于事
python - setup.py 中的条件要求
我正在编写一个依赖于file-magic的库,它适用于大多数平台,但在 Alpine Linux 中,file-magic 不起作用,所以我需要改用python-magic库。
现在我知道如何编写自己的代码来处理不同的 Python 库 API,但我不知道如何编写自己的代码setup.cfg
或setup.py
根据我们正在安装的系统有不同的要求。
我认为最好的选择是使用PEP 508规则,但我不知道如何说“libmagic like Alpine”或该语法中的内容,更不用说这是否可以在包的 setup.py 中使用。确实,我什至无法弄清楚如何在不安装file-magic
和看着它死掉的情况下分辨架构之间的区别:-(
当然,这种事情必须有最佳实践吗?
更新
在下面蒂姆的一些更广泛的理解之后,我拼凑了这个黑客来让它工作:
这允许 的声明性语法setup.cfg
,但install_requires
如果安装目标是 Alpine 系统,则会调整值。
python - 检查文件体系结构的通用方法
有没有一种通用的方法来检查二进制文件(可以是 ELF、Dwarf、PE 等)的平台(32 位/64 位)和架构(powerpc、arm 等)?
我知道几乎每个文件(elf 或 pe)都有一个标头,说明哪个体系结构可以执行它,但是有没有一种通用的方法可以从所有二进制文件中获取这些信息?
我尝试使用返回所有这些信息的魔法,但它以字符串形式返回 -
现在,我正在使用正则表达式从中提取信息,但我不确定是否总是可以依靠它,因为魔法的字符串输出可能不同。
python - Django 用 python-magic (libmagic) 来验证上传的文件
我正在尝试在 django 中保存上传文件的 mime 类型。我不需要拒绝某些类型的文件,我只需要跟踪上传文件的 mime 类型。我正在这样做:
问题是filetype = magic.from_file(self.document.read())
抛出错误:“ValueError:嵌入式空字节”。该文件绝对没有损坏(在这种情况下,它是一个 png,所以我期待图像/png)。from_file 肯定似乎想要一个字节对象,而 self.document.read() 肯定会产生字节,所以我不确定问题是什么......
c - 问题编译 libmagic 程序,magic_open,MAGIC_MIME 和 MAGIC_CHECK 未声明
我一直在尝试在我的程序中使用magic.h
和magiclib
来帮助识别文件类型。但是,当我尝试编译程序时,它会声明magic_open
,MAGIC_MIME
并且MAGIC_CHECK
未声明会导致错误。
我尝试了以下命令(magicTest.c
作为我的程序)
没有成功
以下是我收到的实际错误和输出
任何帮助将不胜感激!
编辑
按照jww的建议运行命令后,如下图:
我的输出是:
再次感谢!
python - 使用 python magic 根据 MIME 类型过滤文件
我在一个目录中有一组文件,我正在使用 python-magic 库来过滤掉“text/plain”类型的文件并删除所有非“text/plain”文件。下面是我正在使用的代码
我能够在一小部分文件上成功运行脚本。但是,当我在包含大约 40000 个文件的目录上运行脚本时,出现以下错误。
我不确定是什么问题。有人可以帮我解决这个问题,或者是否有任何替代方法可以进行上述操作。
更新:尝试以下评论中所述的一些方法后,问题仍然存在。
c - 为什么我不能在我的代码中使用 `libmime`?(OSError:mime.so:未定义符号:magic_load)
我尝试在我的 c 代码中使用 libmagic。我像这样()编译以下代码gcc mime.c -shared -o mime.so
。不幸的是,它在使用它时抛出了这个错误:OSError: mime.so: undefined symbol: magic_load
哑剧.c
我怎样才能解决这个问题?
dockerfile - 获取要求:libMagickWand.so.5()(64bit) 异常
我正在尝试使用 docker 文件在 CentOS 上安装 Install PHP 7.1,但看起来有些错误总是停止,
Dockerfile:
错误:
关于发生了什么以及出了什么问题的任何想法?我是否缺少 dockerFile 中的任何配置?
file-type - 为 libmagic 提供一个魔法数据库
我有一个简单的 C 代码,它返回给定文件的文件类型。我可以从命令行给它任何文件名,它会返回文件类型:
问题是我不想为此依赖包文件。如果我重命名/usr/share/file/misc/magic.mgc
为其他名称,它将不起作用。手册页说它是一个编译文件,也可能只有未编译的数据库。
所以我想将文件复制magic.mgc
到本地目录并想按原样运行编译的程序。
是否可以将本地魔术数据库传递给C程序,使其不依赖系统提供的数据库?