Python 似乎无法在 Mac 上找到隐藏库

Posted

技术标签:

【中文标题】Python 似乎无法在 Mac 上找到隐藏库【英文标题】:Python seems unable to find hid library on Mac 【发布时间】:2021-12-26 08:30:55 【问题描述】:

当我设置 python 虚拟环境并安装 hid 模块时,它似乎无法找到我使用 MacPorts 安装的库。我正在运行 Mac OS Big Sur 11.6.1,并且我还安装了带有 MacPorts 的 python。有什么疑难解答的想法吗?

comp:~ me$ virtualenv-3.9 vtest
created virtual environment CPython3.9.8.final.0-64 in 475ms
  creator CPython3Posix(dest=/Users/me/vtest, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/Users/me/Library/Application Support/virtualenv)
    added seed packages: pip==21.3.1, setuptools==58.3.0, wheel==0.37.0
  activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
comp:~ me$ source vtest/bin/activate
(vtest) comp:~ me$ python3 -m pip install hid
Collecting hid
  Using cached hid-1.0.4-py3-none-any.whl
Installing collected packages: hid
Successfully installed hid-1.0.4
(vtest) comp:~ me$ python3 -c "import hid"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/Users/me/vtest/lib/python3.9/site-packages/hid/__init__.py", line 30, in <module>
    raise ImportError(error)
ImportError: Unable to load any of the following libraries:libhidapi-hidraw.so libhidapi-hidraw.so.0 libhidapi-libusb.so libhidapi-libusb.so.0 libhidapi-iohidmanager.so libhidapi-iohidmanager.so.0 libhidapi.dylib hidapi.dll libhidapi-0.dll
(vtest) comp:~ me$ for i in libhidapi-hidraw.so libhidapi-hidraw.so.0 libhidapi-libusb.so libhidapi-libusb.so.0 libhidapi-iohidmanager.so libhidapi-iohidmanager.so.0 libhidapi.dylib hidapi.dll libhidapi-0.dll;do find /opt -name "$i";done
/opt/local/lib/libhidapi.dylib

更新:hidapi 与 MacPorts 一起安装:

(vtest) comp:~ me$ sudo port installed | grep hid
  hidapi @0.9.0_0 (active)

【问题讨论】:

【参考方案1】:

所以你的问题其实不是你的python找不到hid包。

导入hid 时,hid 会尝试加载未安装的本机库。这可以使用brew install hidapi 解决(在 MacOS 上) 如here所述

【讨论】:

如我的代码块中的最后一行所示,我确实安装了该库。我已对问题添加了更新。【参考方案2】:

您的虚拟环境中的解释器应该与您机器上的依赖项隔离(在一定程度上),因此从这个意义上说,它按设计工作。

查看Set LD_LIBRARY_PATH before importing in python。这应该能让你继续前进。

【讨论】:

谢谢,在启动 python 之前进行设置似乎可以让事情顺利进行!

以上是关于Python 似乎无法在 Mac 上找到隐藏库的主要内容,如果未能解决你的问题,请参考以下文章

Cmake 无法在 Homebrew 中找到 boost_pyhton 库

无法在 Mac Mavericks 上安装 python mysql 库

使用Python子进程中的Vim编辑临时文件在Mac OS上无法正常工作

即使已安装 CMake 也无法找到 gRPC 库(mac)

在 Windows 上安装 Fabric(Python 库)时出现“错误:无法找到 vcvarsall.bat”[重复]

一条命令解决mac版本python IDLE无法输入中文问题