我目前正在开发一个名为script.py
的脚本,它使用了libmagic
包。我使用homebrew (3.5.9)
通过ZSH shell在M1 Pro Mac上安装它。
与任何自制软件包安装一样,我使用了brew install libmagic
,它安装成功,但当我试图用import magic
将其导入到我的程序时,ModuleNotFoundError
被抛出。
一开始,我以为找不到这个模块,因为它是作为第三方模块安装的,所以我添加了$PYTHONPATH
的路径,并通过打印每个条目的sys.path
来验证。但是,我还是犯了同样的错误。
我在这里做的一个假设是,我给$PYTHONPATH
的路径是magic
模块所在的位置,但我认为我在这里做错了什么,因为模块搜索路径显然有我包含的路径,那么为什么它仍然抛出相同的错误?
很明显,$PYTHONPATH
中列出的路径包含在其中,如下所示,那么为什么找不到该模块呢?
我怀疑我没有使用正确的目录为我的$PYTHONPATH
和大多数教程有使用英特尔芯片有一个不同的文件结构比一个在M1专业。M1 Pro中安装的软件包存储在/opt/homebrew/Cellar
下,我可能错过了一些重要的步骤。
有谁遇到过类似的问题,请告诉我怎么做。谢谢你。
2条答案
按热度按时间z4bn682m1#
您可以使用这些命令下载libmagic模块的正式版本
或者如果你没有安装pip,使用这些命令安装它
svmlkihl2#
在基于M1或M2(或Mx)的Apple Silicon Mac上安装
libmagic
:**步骤1)**首先尝试卸载其他已安装的
libmagic
库,然后安装python-magic-bin
:**如果成功了,那就万事大吉了!**但是,如果失败,则意味着未找到适用于Mac的滚轮(二进制),请转到步骤2。
**步骤2)**通过Homebrew安装
libmagic
:**步骤3)**将
magic
目录从the repository复制到您的Python环境库所在目录。运行$ pip list -v
以定位库目录的路径。作为对magic
目录起源的解释,它是从基于Intel的Mac派生而来的,通过pip安装了python-magic
。**步骤4)**将
libmagic.dylib
从Homebrew安装的libmagic的lib
目录复制到步骤3的magic/libmagic
目录,替换YOUR_libmagic.dylib
。请注意,您需要复制原始文件,而不是别名(符号链接)。运行$ brew list -v
以帮助您找到Homebrew安装的库的路径。典型的路径看起来像/usr/local/Cellar/libmagic/5.44/lib
。如果你已经完成了上面的步骤,那么你将能够导入libmagic: