I'm working in a conda
environment with Python 3.8.0 created using conda create --name atbs python=3.8.0
. I have installed pyobjc
, pyobc-core
and pyautogui
using pip install pyautogui
. The installation looks successful, and I can run import objc
with no errors, but when I run import pyautogui
I get the following error message. Can anyone help me figure out what is going on?
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
I got the similar issue and found the workaround from https://github.com/hbldh/bleak/issues/372. It works for me too.
In your file "/opt/anaconda3/envs/atbs/lib/python3.8/site-packages/objc/_dyld.py", replace the following lines
try:
from objc._objc import _dyld_shared_cache_contains_path
except ImportError:
_dyld_shared_cache_contains_path = None
with
_dyld_shared_cache_contains_path = None