在macOS 10.13和Python 3.8上导入pyautogui时出错

在macOS 10.13和Python 3.8上导入pyautogui时出错,python,python-3.x,pyautogui,dyld,pyobjc,Python,Python 3.x,Pyautogui,Dyld,Pyobjc,我在conda环境中工作,使用condacreate--name-atbs-Python=3.8.0创建了Python 3.8.0。我已经使用pip安装pyautogui安装了pyobjc、pyobc核心和pyautogui。安装看起来很成功,我可以运行import objc而没有错误,但是当我运行import pyautogui时,我会收到以下错误消息。有人能帮我弄清楚发生了什么事吗 Traceback (most recent call last): File "/opt/an

我在
conda
环境中工作,使用
condacreate--name-atbs-Python=3.8.0
创建了Python 3.8.0。我已经使用
pip安装pyautogui
安装了
pyobjc
pyobc核心
pyautogui
。安装看起来很成功,我可以运行
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
回溯(最近一次呼叫最后一次):
文件“/opt/anaconda3/envs/atbs/lib/python3.8/site packages/pyautogui/_-pyautogui_-osx.py”,第5行,在
进口石英
文件“/opt/anaconda3/envs/atbs/lib/python3.8/site packages/Quartz/_init__.py”,第6行,在
导入应用程序包
文件“/opt/anaconda3/envs/atbs/lib/python3.8/site packages/AppKit/__init__.py”,第10行,在
进口基金会
文件“/opt/anaconda3/envs/atbs/lib/python3.8/site packages/Foundation/__init__.py”,第9行,在
进口核心基金会
文件“/opt/anaconda3/envs/atbs/lib/python3.8/site packages/CoreFoundation/_init__.py”,第16行,在
objc.pathForFramework(“/System/Library/Frameworks/CoreFoundation.framework”),
pathForFramework中的文件“/opt/anaconda3/envs/atbs/lib/python3.8/site packages/objc/_dyld.py”,第148行
fpath,name,version=infoForFramework(dyld_find(path))
文件“/opt/anaconda3/envs/atbs/lib/python3.8/site packages/objc/_dyld.py”,第142行,在dyld_find中
返回dyld_框架(文件名、框架名称、版本)
dyld_框架中的文件“/opt/anaconda3/envs/atbs/lib/python3.8/site packages/objc/_dyld.py”,第101行
如果动态共享缓存包含路径(f):
未实现错误:\动态\共享\缓存\包含\路径不可用

我遇到了类似的问题,并从 . 这对我也有用

在文件“/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


嘿,谢谢你,这真的很有帮助,我在这上面浪费了太多时间!我在安装6.2.2版本的objc和objc核心的链接页面上尝试了另一个建议,它似乎也能做到这一点,而不需要修改任何包代码。再次感谢。
_dyld_shared_cache_contains_path = None