mac os下为nao机器人编程搭建开发环境

1、import naoqi

1)下载pynaoqi-sdk开发包

如图所示,最后一个

 

2)设置环境变量

vi ~/.bash_profile       

# >>> naoqi2.8 env init
export PYTHONPATH=${PYTHONPATH}:/"your absolute path to pynaoqi dir"/pynaoqi-2.8/lib/python2.7/site-packages
export DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH}:/"your absolute path to pynaoqi dir"/pynaoqi-2.8/lib
export QI_SDK_PREFIX=/"your absolute path to pynaoqi dir"/pynaoqi-2.8

//保存文件后重新启动terminal

 

3)查看要启动的python是否和pynaoqi-sdk开发包中的/.../pynaoqi-2.8/lib/python2.7/site-packages/_inaoqi.so等.so文件链接的python版本是否一致;

$ which python

$ otool -L /"your absolute path to pynaoqi dir"/pynaoqi-2.8/lib/python2.7/site-packages/_inaoqi.so

不一致则在import naoqi时会出现错误

$ python
>>import napqi
Fatal Python error: PyThreadState_Get: no current thread
Abort trap: 6

我使用的pynaoqi-sdk开发版依赖的版本是2.7.10

Python 2.7.10 (v2.7.10:15c95b7d81dc, May 23 2015, 09:33:12)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin

(附上下载链接🔗https://www.python.org/downloads/release/python-2710/)  甚至其它2.7.10.*版本的python都不一定行(没错就是很坑,版本要求就是这么地精确)

参考:http://resolved-error.com/questions/56058535/mojave-problem-with-naoqi-python-dynamic-module-not-initialized-properly/56324798

 

4)确定pynaoqi-sdk开发包中python模块中的共享库文件.so中的链接是否正确

将.so中所有libboost动态库函数变为绝对路径地址或者是添上@loader_path/@rpath帮助找到动态库函数

// 举个栗子
$ install_name_tool -change libboost_signals.dylib @loader_path/libboost_signals.dylib /" your absolute path to sdk "/pynaoqi/_inaoqi.so

 

5)import cv2

下载opencv3

$ brew install opencv@3

设置环境变量

$ vi ~/.bash_profile

export PYTHONPATH=${PYTHONPATH}:/usr/local/opt/opencv@3/lib/python2.7/site-packages

导入opencv,出现错误❌

发现是numpy出了问题,经过查资料,得出原因是numpy版本和opencv版本不搭;

查看原引用的numpy版本

重新下载最新版numpy

$ brew install numpy

为numpy设置环境变量

$ vi ~/.bash_profile

export PYTHONPATH=${PYTHONPATH}:/usr/local/lib/python2.7/site-packages

opencv成功导入

posted @ 2019-06-10 03:27  thePacer  阅读(842)  评论(0编辑  收藏  举报