Naoqi的Python(动态模块没有正确初始化)

时间:2016-10-11 09:51:03

标签: python robot nao-robot

嗨,大家好,我在使用Python和Naoqi for Pepper机器人时遇到了问题。我已经为NaoqiSDK设定了正确的道路,当我跑步时,进口naoqi"我收到这个错误:

>>> import naoqi
Traceback (most recent call last):
File"/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site.py", line 548, in <module>
 main()
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site.py", line 530, in main
 known_paths = addusersitepackages(known_paths)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site.py", line 266, in addusersitepackages
user_site = getusersitepackages()
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site.py", line 241, in getusersitepackages
user_base = getuserbase() # this will also set USER_BASE
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site.py", line 231, in getuserbase
USER_BASE = get_config_var('userbase')
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/sysconfig.py", line 520, in get_config_var
return get_config_vars().get(name)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/sysconfig.py", line 453, in get_config_vars
import re
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/re.py", line 108, in <module>
import _locale
SystemError: dynamic module not initialized properly

有没有人对此有所了解,如何解决?

我将不胜感激任何帮助。谢谢

P.S。我在OSX上运行它

3 个答案:

答案 0 :(得分:5)

与运行任何NAOqi二进制文件类似,您可能需要运行Python解释器并正确设置DYLD_LIBRARY_PATH和DYLD_FRAMEWORK_PATH:

DYLD_LIBRARY_PATH=<installation_directory>/lib DYLD_FRAMEWORK_PATH=<installation_directory> PYTHONPATH=<installation_directory>/lib/python2.7/site-packages python

答案 1 :(得分:1)

所以,我在import qi尝试pynaoqi-python2.7-2.5.5.5-mac64时遇到了一个非常类似的问题。 这是终端日志:

>>> import qi
Traceback (most recent call last):
  File "/usr/local/bin/../Cellar/python/2.7.12/bin/../Frameworks/Python.framework/Versions/2.7/lib/python2.7/site.py", line 548, in <module>
    main()
  File "/usr/local/bin/../Cellar/python/2.7.12/bin/../Frameworks/Python.framework/Versions/2.7/lib/python2.7/site.py", line 530, in main
    known_paths = addusersitepackages(known_paths)
  File "/usr/local/bin/../Cellar/python/2.7.12/bin/../Frameworks/Python.framework/Versions/2.7/lib/python2.7/site.py", line 266, in addusersitepackages
    user_site = getusersitepackages()
  File "/usr/local/bin/../Cellar/python/2.7.12/bin/../Frameworks/Python.framework/Versions/2.7/lib/python2.7/site.py", line 241, in getusersitepackages
    user_base = getuserbase() # this will also set USER_BASE
  File "/usr/local/bin/../Cellar/python/2.7.12/bin/../Frameworks/Python.framework/Versions/2.7/lib/python2.7/site.py", line 231, in getuserbase
    USER_BASE = get_config_var('userbase')
  File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/sysconfig.py", line 520, in get_config_var
    return get_config_vars().get(name)
  File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/sysconfig.py", line 453, in get_config_vars
    import re
  File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/re.py", line 108, in <module>
    import _locale
SystemError: dynamic module not initialized properly

我进行了两次修改,使得qi的输入有效,但是我不确定两者是否都是必要的:

  • 运行命令csrutil status已返回:System Integrity Protection status: enabled。我禁用它重新启动计算机并在恢复模式的终端中运行一些命令,然后重新启动计算机。

  • 从这篇文章开头的日志中可以看出,我在Traceback的路径中有一个名为/Cellar/的文件夹,它来自Homebrew。碰巧的是,我没有在我的计算机上使用默认的python(运行which python确认它)而是使用Homebrew的。

答案 2 :(得分:0)

您必须使用直接从https://www.python.org/downloads/release/python-2710/

下载的python2.7.10

仅使用其他2.7.10。* python版本是不够的