题
如何使用cd和更改 raspberry pi 上的活动目录subprocess module?
背景
因为我非常讨厌使用命令行,所以我正在尝试创建一个基本的 GUI 文本编辑器,它也可以编译我的程序。现在,我只是想将目录更改为Desktop. 为此,我正在使用该subprocess模块。这是我当前的代码:
from subprocess import *
call(["cd","Desktop"])
Run Code Online (Sandbox Code Playgroud)
在终端中,这一行 ( cd Desktop) 会将活动目录更改为Desktop. 奇怪的是,当我运行它subprocess时,出现以下错误:
OSError: [Errno 2] No such file or directory
Run Code Online (Sandbox Code Playgroud)
技术规格
树莓派 B 型
树莓派“Wheezy”操作系统
当我用sudo python3 program.py执行并按下de switch 1时抛出下一个异常:
Taking picture...
Picture takeng...
Traceback (most recent call last):
File "main.py", line 21, in <module>
if GPIO.input(switch1):
RuntimeError: You must setup() the GPIO channel first
Run Code Online (Sandbox Code Playgroud)
我为这个项目使用了覆盆子凸轮库和rpi.gpio库.任何人都知道我的代码中发生了什么?
import RPi.GPIO as GPIO
import time
import picamera
# initial config for gpio ports
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
# input switches
switch1 = 22
switch2 = 23
switch3 = 24
# setup
GPIO.setup(switch1, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(switch2, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(switch3, GPIO.IN, pull_up_down=GPIO.PUD_UP)
# main loop
while True:
if GPIO.input(switch1):
print ("Taking picture...") …Run Code Online (Sandbox Code Playgroud) 这是一个尴尬的问题,但这里有.
我正在尝试使用Raspberry Pi构建一个门解锁系统.我希望Pi保持与远程服务器的开放连接,这样我就可以测试存在(即Pi是否存活),并发送命令.我还希望减轻典型的家庭路由器NAT和动态IP问题.
我的问题是:什么协议最适合这个?
我在想的是使用类似网络套接字的东西,这样我就可以连接到像Pusher这样的服务或我自己的服务器.这个问题是我将从直接Python中完成它,因此中间没有Web浏览器.我不知道我有什么其他选择,如果有的话.
对这个问题的开放式性质表示道歉,但我不知道还能在哪里问.
对于我在c ++中的项目,我想创建一个cmake文件来编译并将所有内容链接在一起.
到目前为止这是我的目录结构:
"quadro/minimu9-ahrs" alias home
|-build
|-include
|-src
Run Code Online (Sandbox Code Playgroud)
在我的家里,我有这个'CMakeLists.txt'文件:
cmake_minimum_required (VERSION 2.6)
project(minimu)
set(HEADER_FILES $("include/*.h")
include_directories(include)
file(GLOB SOURCES "src/*.cpp")
add_executable(minimu ${SOURCES})
add_definitions(-std=c++0x -lwiringPi -lpthread)
#install(TARGETS minimu DESTINATION /usr/lib)
Run Code Online (Sandbox Code Playgroud)
在我的'src'目录中,我获得了所有.cpp文件,并且在'include'中包含了所有标题.当我正在编辑时,我进入我的构建目录,删除那里存在的所有内容(来自之前的版本)并输入
cmake ..
make
Run Code Online (Sandbox Code Playgroud)
我现在的问题是,src中的main.cpp使用'#include wiringPi.h',但是当我创建项目时,它给出了以下错误:
pi@raspberrypi ~/quadro/minimu9-ahrs/build $ make
Scanning dependencies of target minimu
[ 20%] Building CXX object CMakeFiles/minimu.dir/src/L3G.cpp.o
[ 40%] Building CXX object CMakeFiles/minimu.dir/src/LSM303.cpp.o
[ 60%] Building CXX object CMakeFiles/minimu.dir/src/main.cpp.o
[ 80%] Building CXX object CMakeFiles/minimu.dir/src/I2CBus.cpp.o
[100%] Building CXX object CMakeFiles/minimu.dir/src/MinIMU9.cpp.o
Linking CXX executable minimu
CMakeFiles/minimu.dir/src/main.cpp.o: In function …Run Code Online (Sandbox Code Playgroud) 坏消息,大家!
我尝试通过 PyAudio 在我的 Raspberry Pi 上使用麦克风,但没有成功。麦克风连接到 USB 声卡。
当我通过“arecord”时麦克风工作:
pi@raspberrypi ~ $ arecord -D plughw:0,0 -f cd test2.wav
Recording WAVE 'test2.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
Run Code Online (Sandbox Code Playgroud)
但是,当我在 PyAudio 中执行 test record.py 时,出现错误。Python 中使用 PyAudio 的所有程序的错误都是相同的:
pi@raspberrypi /usr/src/pyaudio/test $ python record.py
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown …Run Code Online (Sandbox Code Playgroud) 我有一个无头的Raspberry Pi运行一个简单的NodeJS应用程序.
我附加到Pi的唯一界面是一个按钮,用于启动和停止间隔拍摄视频录制.
我知道在没有正确关闭的情况下切断Pi的电源并不好,所以我想向Node添加一个shutdown命令.
使用ShellJS,我可以非常简单地做到这一点 - 如果用户按住按钮五秒钟,我可以打电话
shell.exec('sudo shutdown -h now');
Run Code Online (Sandbox Code Playgroud)
这将关闭Pi.当我通过ssh连接到Pi并且我自己调用node命令('node app.js')时,这可以正常工作.但我的目标是让我的Node应用程序在启动时自动运行.我是通过使用'/etc/rc.local'在启动时调用脚本来做到的:
su pi -c 'node /path/to/app.js'
Run Code Online (Sandbox Code Playgroud)
在这种情况下,shutdown命令不起作用,我甚至不知道如何访问节点控制台以查看它抛出的错误类型.有人能指出我在正确的方向吗?
我收到此错误,我无法弄清楚问题是什么:
Traceback (most recent call last):
File "C:/Python34/Scripts/ddg.py", line 8, in <module>
data = json.loads(r)
File "C:\Python34\lib\json\__init__.py", line 312, in loads
s.__class__.__name__))
TypeError: the JSON object must be str, not 'Response'
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
import requests, json
search_q = input('Enter query: ')
r = requests.get('https://api.duckduckgo.com/?q=%s&format=json&pretty=1' % search_q)
if r.status_code == requests.codes.ok:
data = json.loads(r)
node = data['RelatedTopics']['Result']
print (str(node))
else:
bad_r.raise_for_status()
Run Code Online (Sandbox Code Playgroud) 我有几个同时在 Raspi 上运行的 python 脚本。根据当前时间,每个可能开始运行或停止运行。如何找出正在使用 Python 运行的脚本?
我的出发点是:
所以我编辑/etc/init/docker.conf并更新了2次DOCKER_OPTS变量:
DOCKER_OPTS='-H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock'
然后,列出泊坞窗图像的简单测试失败:
$ service docker restart
$ curl -X GET http://10.143.0.218:4243/images/json
curl: (7) Failed to connect to 10.143.0.218 port 4243: Connection refused
Run Code Online (Sandbox Code Playgroud)
Docker版本是:
$ sudo docker version
Client:
Version: 1.12.3
API version: 1.24
Go version: go1.6.3
Git commit: 6b644ec
Built: Wed Oct 26 19:06:36 2016
OS/Arch: linux/arm
Server:
Version: 1.12.3
API version: 1.24
Go version: go1.6.3
Git commit: 6b644ec
Built: Wed Oct 26 19:06:36 2016
OS/Arch: linux/arm
Run Code Online (Sandbox Code Playgroud) 我一直在弄乱Raspberry Pi和RFID,发现了本教程:
https://pimylifeup.com/raspberry-pi-rfid-rc522/
安装一切正常,但是当我运行脚本时出现错误。
这就是问题:
pi@raspberrypi:~/MFRC522-python $ sudo python Write.py
/home/pi/MFRC522-python/MFRC522.py:115: RuntimeWarning: This channel is already in use, continuing anyway. Use GPIO.setwarnings(False) to disable warnings.
GPIO.setup(25, GPIO.OUT)
Traceback (most recent call last):
File "Write.py", line 6, in <module>
reader = SimpleMFRC522.SimpleMFRC522()
File "/home/pi/MFRC522-python/SimpleMFRC522.py", line 14, in __init__
self.READER = MFRC522.MFRC522()
File "/home/pi/MFRC522-python/MFRC522.py", line 117, in __init__
self.MFRC522_Init()
File "/home/pi/MFRC522-python/MFRC522.py", line 390, in MFRC522_Init
self.MFRC522_Reset();
File "/home/pi/MFRC522-python/MFRC522.py", line 120, in MFRC522_Reset
self.Write_MFRC522(self.CommandReg, self.PCD_RESETPHASE)
File "/home/pi/MFRC522-python/MFRC522.py", line 123, in Write_MFRC522
spi.transfer(((addr<<1)&0x7E,val))
TypeError: …Run Code Online (Sandbox Code Playgroud) raspberry-pi ×10
python ×6
linux ×2
c++ ×1
camera ×1
cd ×1
cmake ×1
docker ×1
gpio ×1
javascript ×1
json ×1
node.js ×1
pyaudio ×1
python-2.7 ×1
python-3.x ×1
raspbian ×1
remoteapi ×1
rfid ×1
subprocess ×1
typeerror ×1
websocket ×1