在M1 Pro Mac上通过自制软件安装的Python中导入模块困难

cmssoen2  于 2023-07-01  发布在  Python
关注(0)|答案(2)|浏览(93)

我目前正在开发一个名为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下,我可能错过了一些重要的步骤。
有谁遇到过类似的问题,请告诉我怎么做。谢谢你。

z4bn682m

z4bn682m1#

您可以使用这些命令下载libmagic模块的正式版本

> pip install python-magic
            or
> pip3 install python-magic ## if you have different versions of python installed

或者如果你没有安装pip,使用这些命令安装它

> curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
> python3 get-pip.py
svmlkihl

svmlkihl2#

在基于M1或M2(或Mx)的Apple Silicon Mac上安装libmagic

**步骤1)**首先尝试卸载其他已安装的libmagic库,然后安装python-magic-bin

$ pip uninstall python-magic
$ pip install python-magic-bin

**如果成功了,那就万事大吉了!**但是,如果失败,则意味着未找到适用于Mac的滚轮(二进制),请转到步骤2。
**步骤2)**通过Homebrew安装libmagic

$ brew install 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:

import magic

相关问题