【问题标题】:Error when importing pyautogui on macOS 10.13 and Python 3.8在 macOS 10.13 和 Python 3.8 上导入 pyautogui 时出错
【发布时间】:2020-11-29 21:40:17
【问题描述】:

我正在使用conda create --name atbs python=3.8.0 创建的 Python 3.8.0 在 conda 环境中工作。我使用pip install pyautogui 安装了pyobjcpyobc-corepyautogui。安装看起来很成功,我可以运行import objc 没有错误,但是当我运行import pyautogui 时,我收到以下错误消息。谁能帮我弄清楚这是怎么回事?

Traceback (most recent call last):
  File "/opt/anaconda3/envs/atbs/lib/python3.8/site-packages/pyautogui/_pyautogui_osx.py", line 5, in <module>
    import Quartz
  File "/opt/anaconda3/envs/atbs/lib/python3.8/site-packages/Quartz/__init__.py", line 6, in <module>
    import AppKit
  File "/opt/anaconda3/envs/atbs/lib/python3.8/site-packages/AppKit/__init__.py", line 10, in <module>
    import Foundation
  File "/opt/anaconda3/envs/atbs/lib/python3.8/site-packages/Foundation/__init__.py", line 9, in <module>
    import CoreFoundation
  File "/opt/anaconda3/envs/atbs/lib/python3.8/site-packages/CoreFoundation/__init__.py", line 16, in <module>
    objc.pathForFramework("/System/Library/Frameworks/CoreFoundation.framework"),
  File "/opt/anaconda3/envs/atbs/lib/python3.8/site-packages/objc/_dyld.py", line 148, in pathForFramework
    fpath, name, version = infoForFramework(dyld_find(path))
  File "/opt/anaconda3/envs/atbs/lib/python3.8/site-packages/objc/_dyld.py", line 142, in dyld_find
    return dyld_framework(filename, framework_name, version)
  File "/opt/anaconda3/envs/atbs/lib/python3.8/site-packages/objc/_dyld.py", line 101, in dyld_framework
    if _dyld_shared_cache_contains_path(f):
NotImplementedError: _dyld_shared_cache_contains_path not available

【问题讨论】:

    标签: python python-3.x pyautogui dyld pyobjc


    【解决方案1】:

    我遇到了类似的问题,并找到了解决方法 https://github.com/hbldh/bleak/issues/372。它也适用于我。

    在您的文件“/opt/anaconda3/envs/atbs/lib/python3.8/site-packages/objc/_dyld.py”中,替换以下行

    try:
        from objc._objc import _dyld_shared_cache_contains_path
    except ImportError:
        _dyld_shared_cache_contains_path = None
    

    _dyld_shared_cache_contains_path = None  
    

    【讨论】:

    • 嘿,谢谢你,这真的很有帮助,我在这上面浪费了很多时间!我在安装 objc 和 objc-core 版本 6.2.2 的链接页面上尝试了其他建议,这似乎也可以解决问题,而无需修改任何包代码。再次感谢。
    猜你喜欢
    • 2020-04-13
    • 2021-03-11
    • 1970-01-01
    • 2018-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-14
    相关资源
    最近更新 更多