2

大家好,我对 Pepper 机器人的 Python 和 Naoqi 有疑问。我已经为 NaoqiSDK 设置了正确的路径,当我运行“import 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

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

我将不胜感激有关此的任何帮助。谢谢

Ps 我在 OSX 上运行这个

4

3 回答 3

5

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

DYLD_LIBRARY_PATH=<installation_directory>/lib DYLD_FRAMEWORK_PATH=<installation_directory> PYTHONPATH=<installation_directory>/lib/python2.7/site-packages python
于 2017-01-18T14:58:04.703 回答
1

所以,我遇到了一个非常相似的问题,试图import qipynaoqi-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 的。

于 2018-04-10T15:47:12.857 回答
0

您必须使用直接从https://www.python.org/downloads/release/python-2710/下载的 python2.7.10

使用任何其他 2.7.10.* python 版本是不够的

于 2019-05-27T11:02:30.657 回答