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都不一定行(没错就是很坑,版本要求就是这么地精确)
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成功导入