基于机器学习的捡球机器人设计与实现(探索)第7篇——最近踩坑记录

2019-03-23 by 崔斐然

1:在virtualenv虚拟环境中,Python3 import No module named ‘RPi’ 的解决办法

在晚上测试新代码时候需要用虚拟环境,报错import No module named ‘RPi’
退出virtualenv使用Python3 >>>import RPi.GPIO as GPIO 没问题,考虑到可能是虚拟环境没有安装RP包,使用 sudo sudo apt-get -y install python3-rpi.gpio导入,依旧报错,随后尝试使用sudo pip install --upgrade RPi.GPIO提示已安装RPi,但是测试也不行,在大量百度谷歌后得到信息:在虚拟环境下,不要使用sudo 正确办法: pip install RPi.GPIO

基于机器学习的捡球机器人设计与实现(探索)第7篇——最近踩坑记录

解释是 使用sudo 时候包会装在本地,不会安装虚拟环境中,详情:https://github.com/spacewander/blogWithMarkdown/blob/master/debug/pipInstallInVirtualenv.md





2: apt-get 错误 Temporary failure in name resolution’解决:

<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x75d57450>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution
这tm又是什么???
濒临格盘重来时 读到一篇博文,讲可能是因为DNS问题导致的https或者被劫持怎样怎样,考虑更换下DNS或者换源:

换源:

如果之前没有换源的话就用这几条命令换源:(适用于 Debian stretch)

#备份:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak 
sudo cp /etc/apt/sources.list.d/raspi.list /etc/apt/sources.list.d/raspi.list.bak
#更换为中科大源
sudo -i
sudo sed -i 's|//archive.raspberrypi.org|//mirrors.ustc.edu.cn/archive.raspberrypi.org|g' /etc/apt/sources.list.d/raspi.list
sudo sed -i 's|raspbian.raspberrypi.org|mirrors.ustc.edu.cn/raspbian|g' /etc/apt/sources.list
exit
#更新索引
sudo apt-get update

详细请参阅中科大源手册(树莓派Debian换源)

如果以前换过源的话就手撸吧
直接编辑:sudo nano /etc/apt/sources.list文件删除原文件所有内容,用以下内容取代(以 Stretch 示例):

deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
#deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi

然后更新软件索引:sudo apt-get update


更换DNS:

sudo nano  /etc/resolv.conf 

修改找到:
nameserver < ip > 改为 nameserver 223.5.5.5 (阿里DNS)
然后重启网络服务:

sudo etc/init.d/networking restart

搞定。究其原因,可能是之前配置树莓派热点,DHCP开机自启使得DNS发生变化,当时使用的脚本是这个:https://github.com/oblique/create_ap 日后再研究怎么关掉吧