Python для Naoqi (динамический модуль не инициализирован должным образом)

#python #robot #nao-robot

#python #робот #nao-робот

Вопрос:

Привет, ребята, у меня проблема с Python и Naoqi для Pepper robot. Я установил правильный путь к 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

Комментарии:

1. вы решили проблему?

Ответ №1:

Аналогично запуску любого двоичного файла 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
  

Ответ №2:

Итак, я столкнулся с очень похожей проблемой, пытаясь 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 . Я отключил его, перезагрузив компьютер и запустив некоторую команду в терминале режима восстановления, затем перезагрузил компьютер.

  • Как видно из журнала в начале этого поста, у меня в пути обратной трассировки была вызвана папка /Cellar/ , которая поступала из Homebrew. Как это случилось, я не использовал python по умолчанию на своем компьютере (запуск which python подтвердил это), а вместо этого Homebrew.

Комментарии:

1. Привет @standousset, как отключить статус защиты целостности системы?

Ответ №3:

Вы должны использовать python2.7.10, загруженный непосредственно с https://www.python.org/downloads/release/python-2710 /

Недостаточно использовать любую другую версию 2.7.10. * python