【问题标题】:Error while importing pynput - dlsym(0x7f90f7d0c310, PyObjCObject_New): symbol not found导入 pynput 时出错 - dlsym(0x7f90f7d0c310,PyObjCObject_New):找不到符号
【发布时间】:2021-12-25 18:40:59
【问题描述】:

我使用以下命令安装了 pynput 模块(版本 1.7.4):pip3 install pynput

我尝试在我的 Jupyter-lab 中导入模块,但总是以失败告终。错误信息如下所示:

AttributeError: dlsym(0x7f90f7d0c310, PyObjCObject_New): symbol not found

我尝试查找以前的问题,但找不到可以帮助我解决此问题的问题。如果有人可以帮助我处理这个问题,那将不胜感激。

以防万一有必要找出我的问题,下面附上整个错误消息:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
/var/folders/l3/gg_2y0zx4zz2rqytp5sctpy80000gn/T/ipykernel_64397/3885633262.py in <module>
----> 1 import pynput

~/opt/anaconda3/envs/GE/lib/python3.9/site-packages/pynput/__init__.py in <module>
     38 
     39 
---> 40 from . import keyboard
     41 from . import mouse

~/opt/anaconda3/envs/GE/lib/python3.9/site-packages/pynput/keyboard/__init__.py in <module>
     29 
     30 
---> 31 backend = backend(__name__)
     32 KeyCode = backend.KeyCode
     33 Key = backend.Key

~/opt/anaconda3/envs/GE/lib/python3.9/site-packages/pynput/_util/__init__.py in backend(package)
     68     for module in modules:
     69         try:
---> 70             return importlib.import_module('._' + module, package)
     71         except ImportError as e:
     72             errors.append(e)

~/opt/anaconda3/envs/GE/lib/python3.9/importlib/__init__.py in import_module(name, package)
    125                 break
    126             level += 1
--> 127     return _bootstrap._gcd_import(name[level:], package, level)
    128 
    129 

~/opt/anaconda3/envs/GE/lib/python3.9/site-packages/pynput/keyboard/_darwin.py in <module>
     49     NSSystemDefined)
     50 
---> 51 from pynput._util.darwin import (
     52     get_unicode_to_keycode_map,
     53     keycode_context,

~/opt/anaconda3/envs/GE/lib/python3.9/site-packages/pynput/_util/darwin.py in <module>
     58 OBJC = ctypes.PyDLL(objc._objc.__file__)
     59 
---> 60 OBJC.PyObjCObject_New.restype = ctypes.py_object
     61 OBJC.PyObjCObject_New.argtypes = [ctypes.c_void_p, ctypes.c_int, ctypes.c_int]
     62 

~/opt/anaconda3/envs/GE/lib/python3.9/ctypes/__init__.py in __getattr__(self, name)
    393         if name.startswith('__') and name.endswith('__'):
    394             raise AttributeError(name)
--> 395         func = self.__getitem__(name)
    396         setattr(self, name, func)
    397         return func

~/opt/anaconda3/envs/GE/lib/python3.9/ctypes/__init__.py in __getitem__(self, name_or_ordinal)
    398 
    399     def __getitem__(self, name_or_ordinal):
--> 400         func = self._FuncPtr((name_or_ordinal, self))
    401         if not isinstance(name_or_ordinal, int):
    402             func.__name__ = name_or_ordinal

AttributeError: dlsym(0x7f90f7d0c310, PyObjCObject_New): symbol not found

【问题讨论】:

    标签: pynput dlsym


    【解决方案1】:

    https://github.com/moses-palmer/pynput/issues/420

    最新的 Pyobjc 打破了 pynput。将其降级到 7.3 可解决此问题。

    【讨论】:

      猜你喜欢
      • 2022-11-09
      • 2021-11-01
      • 2010-09-22
      • 2021-12-21
      • 2021-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-14
      相关资源
      最近更新 更多