PaddlePaddle / MetaGym

Collection of Reinforcement Learning / Meta Reinforcement Learning Environments.
Apache License 2.0
276 stars 59 forks source link

Big Sur import error: ValueError: dlsym(RTLD_DEFAULT, NSEventTrackingRunLoopMode): symbol not found #38

Closed doublequeens closed 9 months ago

doublequeens commented 3 years ago

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
doublequeens commented 3 years ago

我找到了解决方法,ValueError: dlsym(RTLD_DEFAULT, NSEventTrackingRunLoopMode): symbol not found 报错是由于Pyglet 1.5.0与big sur系统不兼容导致的,升级pyglet至最新1.5.15即可解决这个问题。

TomorrowIsAnOtherDay commented 3 years ago

hello,感谢您的反馈:) 可以发一个PR 修复这个问题 https://github.com/PaddlePaddle/RLSchool/blob/aa50b7fd78b93c597f73c5cb1f6161a4e4fb7ba4/setup.py#L46

huoxr commented 1 year ago

谢谢 解决了 macos跑mpe环境跑不起来的问题 感谢 搜了好多 这个是有效的