在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