MetaGym
MetaGym copied to clipboard
Big Sur import error: ValueError: dlsym(RTLD_DEFAULT, NSEventTrackingRunLoopMode): symbol not found
Environments: system: Mac Big Sur 11.2.3 jupyter lab version: 2.2.6 python version: Python 3.8.5/3.9.2
当尝试import rlschool时,会报错ValueError: dlsym(RTLD_DEFAULT, NSEventTrackingRunLoopMode): symbol not found,
详情如下。
大致搜索了下有的说是Python版本问题,有人通过升级Python至3.9.0解决了这个问题,issue 436,我也尝试了升级到3.9.2但是这个问题依然存在,所以,想来看下大家有遇到这个问题吗
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
~/opt/anaconda3/lib/python3.8/site-packages/pyglet/__init__.py in __getattr__(self, name)
328 try:
--> 329 return getattr(self._module, name)
330 except AttributeError:
AttributeError: 'NoneType' object has no attribute 'Window'
During handling of the above exception, another exception occurred:
ValueError Traceback (most recent call last)
<ipython-input-10-c87ef756b229> in <module>
1 # We show a simple example to start LiftSim here
----> 2 import rlschool
~/opt/anaconda3/lib/python3.8/site-packages/rlschool/__init__.py in <module>
13 # limitations under the License.
14
---> 15 from rlschool.liftsim import *
16 from rlschool.quadrotor import *
17
~/opt/anaconda3/lib/python3.8/site-packages/rlschool/liftsim/__init__.py in <module>
13 # limitations under the License.
14
---> 15 from rlschool.liftsim.environment import *
~/opt/anaconda3/lib/python3.8/site-packages/rlschool/liftsim/environment/__init__.py in <module>
14
15 from rlschool.liftsim.environment.env import *
---> 16 from rlschool.liftsim.environment.animation import *
17 from rlschool.liftsim.environment.mansion import *
~/opt/anaconda3/lib/python3.8/site-packages/rlschool/liftsim/environment/animation/__init__.py in <module>
13 # limitations under the License.
14
---> 15 from rlschool.liftsim.environment.animation.rendering import *
16 from rlschool.liftsim.environment.animation.resources import *
~/opt/anaconda3/lib/python3.8/site-packages/rlschool/liftsim/environment/animation/rendering.py in <module>
23 pyglet.resource.reindex()
24
---> 25 class Render(pyglet.window.Window):
26 def __init__(self, shared):
27 self.shared_mansion = shared
~/opt/anaconda3/lib/python3.8/site-packages/pyglet/__init__.py in __getattr__(self, name)
333
334 import_name = 'pyglet.%s' % self._module_name
--> 335 __import__(import_name)
336 module = sys.modules[import_name]
337 object.__setattr__(self, '_module', module)
~/opt/anaconda3/lib/python3.8/site-packages/pyglet/window/__init__.py in <module>
1863 # Try to determine which platform to use.
1864 if pyglet.compat_platform == 'darwin':
-> 1865 from pyglet.window.cocoa import CocoaWindow as Window
1866 elif pyglet.compat_platform in ('win32', 'cygwin'):
1867 from pyglet.window.win32 import Win32Window as Window
~/opt/anaconda3/lib/python3.8/site-packages/pyglet/window/cocoa/__init__.py in <module>
42 from pyglet.event import EventDispatcher
43
---> 44 from pyglet.canvas.cocoa import CocoaCanvas
45
46 from pyglet.libs.darwin import cocoapy, CGPoint
~/opt/anaconda3/lib/python3.8/site-packages/pyglet/canvas/__init__.py in <module>
100 from pyglet import compat_platform
101 if compat_platform == 'darwin':
--> 102 from pyglet.canvas.cocoa import CocoaDisplay as Display
103 from pyglet.canvas.cocoa import CocoaScreen as Screen
104 from pyglet.canvas.cocoa import CocoaCanvas as Canvas
~/opt/anaconda3/lib/python3.8/site-packages/pyglet/canvas/cocoa.py in <module>
39 from .base import Display, Screen, ScreenMode, Canvas
40
---> 41 from pyglet.libs.darwin.cocoapy import CGDirectDisplayID, quartz, cf
42 from pyglet.libs.darwin.cocoapy import cfstring_to_string, cfarray_to_list
43
~/opt/anaconda3/lib/python3.8/site-packages/pyglet/libs/darwin/__init__.py in <module>
34 # ----------------------------------------------------------------------------
35
---> 36 from .cocoapy import *
~/opt/anaconda3/lib/python3.8/site-packages/pyglet/libs/darwin/cocoapy/__init__.py in <module>
35
36 from .cocoatypes import *
---> 37 from .cocoalibs import *
~/opt/anaconda3/lib/python3.8/site-packages/pyglet/libs/darwin/cocoapy/cocoalibs.py in <module>
198
199 NSDefaultRunLoopMode = c_void_p.in_dll(appkit, 'NSDefaultRunLoopMode')
--> 200 NSEventTrackingRunLoopMode = c_void_p.in_dll(appkit, 'NSEventTrackingRunLoopMode')
201 NSApplicationDidHideNotification = c_void_p.in_dll(appkit, 'NSApplicationDidHideNotification')
202 NSApplicationDidUnhideNotification = c_void_p.in_dll(appkit, 'NSApplicationDidUnhideNotification')
ValueError: dlsym(RTLD_DEFAULT, NSEventTrackingRunLoopMode): symbol not found
我找到了解决方法,ValueError: dlsym(RTLD_DEFAULT, NSEventTrackingRunLoopMode): symbol not found 报错是由于Pyglet
1.5.0与big sur系统不兼容导致的,升级pyglet至最新1.5.15即可解决这个问题。
hello,感谢您的反馈:) 可以发一个PR 修复这个问题 https://github.com/PaddlePaddle/RLSchool/blob/aa50b7fd78b93c597f73c5cb1f6161a4e4fb7ba4/setup.py#L46
谢谢 解决了 macos跑mpe环境跑不起来的问题 感谢 搜了好多 这个是有效的