Python for Naoqi (dynamic module not initialized properly)

空扰寡人 提交于 2019-12-02 05:31:49

问题


Hi guys I am having a problem with Python and Naoqi for Pepper robot. I've set the right path to NaoqiSDK and when I run "import naoqi" I get this error:

>>> 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

Is there anyone who knows anything about this, how to fix it?

I would appreciate any help about this. Thank you

P.s. I'm running this on OSX


回答1:


Similarly to running any NAOqi binary, you may need to run your Python interpreter with DYLD_LIBRARY_PATH and DYLD_FRAMEWORK_PATH set properly:

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



回答2:


So, I ran in a very similar issue trying to import qi on pynaoqi-python2.7-2.5.5.5-mac64. Here is the Terminal log:

>>> 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

I made two modifications which make the import of qi work, however I'm not sure if both were necessary:

  • Running the command csrutil status returned: System Integrity Protection status: enabled. I disabled it restarting the computer and running some command in the Recovery mode's Terminal, then restarted the computer.

  • As can be seen in the log at the beginning of this post, I had in the path of the Traceback a folder called /Cellar/, which was coming from Homebrew. As it happened, I was not using the default python on my computer (running which python confirmed it) but instead Homebrew's.




回答3:


You have to use python2.7.10 downloaded directly from https://www.python.org/downloads/release/python-2710/

It is not enough to use any other 2.7.10.* python version



来源:https://stackoverflow.com/questions/39974637/python-for-naoqi-dynamic-module-not-initialized-properly

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!