概述:

你好.我有一个python程序,在9-5小时之间控制一个运动传感器.该程序在树莓派上运行,存储在带有西方人v2.1 Debian OS的SD媒体上.该计划在很大程度上依赖于time.sleep方法在非工作时间睡觉,并在第二天上午9点恢复它的职责.如果传感器触发,它会通过网络摄像头自动拍摄一张小图片.

问题:

直到最近该程序工作正常,直到某天有人触发传感器并且take_picture()函数无法初始化/ dev / video0.似乎udev没有将设备映射到/ dev / video *,当我重新插入网络摄像头并用“dmesg | tail”检查它的状态时,我收到一个错误:

[36725.201116] EXT4-fs error (device mmcblk0p2): udev

在研究了问题并得出文件系统损坏的结论后,我试图在SD媒体上运行文件系统检查.在该过程中解决了许多错误,但重新安装USB网络摄像头后再次出现相同的EXT4-fs错误消息.

修复尝试#1

此时我重新安装了操作系统并重新运行了我的传感器python程序;两天它工作,发送图像,睡觉.我假设一切正常,所以我关闭设备将传感器放在更集中的位置.

启动设备并只是从ssh连接运行“python”命令后,我收到此错误:

Traceback (most recent call last):

File "/usr/lib/python2.7/site.py", line 562, in

main()

File "/usr/lib/python2.7/site.py", line 544, in main

known_paths = addusersitepackages(known_paths)

File "/usr/lib/python2.7/site.py", line 271, in addusersitepackages

user_site = getusersitepackages()

File "/usr/lib/python2.7/site.py", line 246, in getusersitepackages

user_base = getuserbase() # this will also set USER_BASE

File "/usr/lib/python2.7/site.py", line 235, in getuserbase

from sysconfig import get_config_var

ImportError: cannot import name get_config_var

在程序运行的时间和重新启动之间没有更改任何设置.我假设最坏的并再次检查“dmesg | tail”并收到更多的文件系统错误:

[36725.201116] EXT4-fs error (device mmcblk0p2): ext4_ext_check_inode:403: inode #21266: comm python: bad header/extent: invalid extent entries - magic f30a, entries 1, max 4(4), depth 0(0)

[36725.239030] EXT4-fs error (device mmcblk0p2): ext4_ext_check_inode:403: inode #21427: comm python: bad header/extent: too large eh_max - magic f30a, entries 1, max 516(4), depth 0(0)

在额外的文件系统检查并重新启动后,运行“python”:

[ 819.427780] EXT4-fs error (device mmcblk0p2): ext4_ext_check_inode:403: inode #21266: comm python: bad header/extent: invalid extent entries - magic f30a, entries 1, max 4(4), depth 0(0)

[ 819.470874] EXT4-fs error (device mmcblk0p2): ext4_ext_check_inode:403: inode #21427: comm python: bad header/extent: too large eh_max - magic f30a, entries 1, max 516(4), depth 0(0)

[ 819.570893] EXT4-fs error (device mmcblk0p2): ext4_xattr_block_get:232: inode #21265: comm python: bad block 128

在这一点上,我认为这些错误的原因可能与我的程序的核心有关,但实质上它很简单,只在创建图片时写入磁盘.以下是罪魁祸首代码:

潜在问题的代码:

def take_picture():

cam = pygame.camera.Camera("/dev/video0",(320,240)) #1280x960 max but slow

pygame.init()

cam.start()

print "Capturing Image..."

image_output = cam.get_image()

pygame.image.save(image_output,'img_' +str(get_timestamp)+'.jpg')

cam.stop()

#activate PIR

def pir_init():

while True:

m = datetime.datetime.now().time().minute #loop through for current time

h = datetime.datetime.now().time().hour

d = datetime.datetime.today().weekday()

if d > 4:

print("Sleeping...")

print time_sleep

time_sleep = (((7 - d) * 3600) * 24) - (h * 3600) + (9 * 3600)

time.sleep(time_sleep)

elif h < 9:

print("Sleeping...")

time_sleep = (9 - h) * 3600

time.sleep(time_sleep)

elif h > 16:

print("Sleeping...")

time_sleep = ((24 - h) + 9) * 3600

time.sleep(time_sleep)

elif io.input(pir_pin):

print("PIR ALARM")

pygame.camera.init()

time.sleep(1.5)

take_picture()

send_gmail()

time.sleep(10) #cooldown to prevent email spew

else:

print "Waiting..."

time.sleep(0.5) #sleep and wait for movement

print m

print "Wait"

我上面可以看到的唯一潜在问题可能是生成图片或长时间睡眠.

任何洞察可能导致这些重复文件系统错误的内容都将受到赞赏.提前致谢!

python可能导致异常的代码_Python程序可能导致文件系统错误?相关推荐

  1. python while true循环卡住不动_python – While循环导致整个程序在Tkinter中崩溃

    我试图运行一个While循环,以便不断做一些事情.目前,它所做的只是崩溃我的程序. 这是我的代码: import tkinter def a(): root = tkinter.Tk() canvas ...

  2. python做公司内部系统错误_Python程序可能导致文件系统错误?

    概述: 你好.我有一个python程序,在9-5小时之间控制一个运动传感器.该程序在树莓派上运行,存储在带有西方人v2.1 Debian OS的SD媒体上.该计划在很大程度上依赖于time.sleep ...

  3. python同时注释多行代码_python怎么同时对多行代码进行注释

    学会向程序中添加必要的注释,也是很重要的.注释不仅可以用来解释程序某些部分的作用和功能(用自然语言描述代码的功能),在必要时,还可以将代码临时移除,是调试程序的好帮手. 当然,添加注释的最大作用还是提 ...

  4. python都用什么写代码_python都用什么写代码

    各位 Pythoner 好啊!在这个烦躁的时代,相聚就是缘分,很高兴各位 Pythoner 能相聚于此,希望接下来的路,我们一起走下去,使用 Python 来做一些有趣的事情,有意义的事情. 我们在使 ...

  5. python求n的阶乘代码_python计算n的阶乘的方法代码

    python中n的阶乘的算法? 1 math.factorial(x) 用python计算n的阶乘的方法.(含示例代码) 2. reduce函数 用python计算n的阶乘的方法. python里怎么 ...

  6. python在类中定义全局变量_python程序中用类变量代替global 定义全局变量

    在python编程中,一般使用global 关键字来定义全局变量,但是发现 global 关键字在涉及多个文件时,好像存在问题. 比如,单个文件下用global定义使用全局变量的情况 ,看下面的代码 ...

  7. python执行原理是什么意思_Python程序的执行原理

    摘要:Python程序的执行原理是什么,下面这篇文章为你详细介绍. 1. 过程概述 Python先把代码(.py文件)编译成字节码,交给字节码虚拟机,然后虚拟机一条一条执行字节码指令,从而完成程序的执 ...

  8. python读取pdf表格数据代码_Python新工具:用三行代码提取PDF表格数据

    原标题:Python新工具:用三行代码提取PDF表格数据 机器之心报道 项目作者:vinayak mehta,参与:一鸣 从 PDF 表格中获取数据是一项痛苦的工作.不久前,一位开发者提供了一个名为 ...

  9. python版本可执行可嵌入_Python程序打包成exe可执行文件的方法探究

    王瑞文+王圣辉+边润根+邓明月 摘 要:Python是一种很流行的开源编程语言,可以在各种领域中用来编写独立的程序和脚本.Python免费.可移植.功能强大,而且使用起来相当容易.来自软件产业各个角落 ...

  10. python输出图形效果的代码_python打印图形大全(详解)

    原博文 2019-04-13 23:48 − 1)for i in range(0,10): shixin=chr(9679) print(shixin) -------------------结果: ...

最新文章

  1. ocr智能图文识别 tess4j 图文,验证码识别
  2. mac svn 可视化界面_svn for mac 操作
  3. 高压发生器的输出电压波形
  4. Oracle传输表空间
  5. 小蚂蚁学习数据结构(32)——二叉排序树的概念
  6. 新手可以做的ai比赛:亲测有效
  7. win10下安装SQLServer2000
  8. jdbc:log4jdbc_使用Log4jdbc记录JDBC操作
  9. [js] 如何按回车自动提交表单
  10. for循环c语言流水灯,巧用数组与for循环为流水灯程序瘦身
  11. JQuery1.2.6 ui.dialog控件在IE6下标题栏显示不正常的问题解决
  12. DNS(BIND) 正向解析   反向解析 基本服务的搭建
  13. python玩我的世界盒子_省培预存|编程教学建议第一辑“教材分层次梳理”
  14. C语言函数二维数组传递方法
  15. MySQL用户的增删改权以及root远程连接
  16. 编译FREETYPE:VS2010错误MSB8008
  17. 军团要塞2无限子弹服务器,【图片】教大家创建tf2服务器(互联网的)小白版~【军团要塞吧】_百度贴吧...
  18. 互动3D网站已触手可及
  19. 如何计算芯片的ESP mac 地址
  20. 努力是为了让自己不平庸

热门文章

  1. 论文阅读-目标检测(2019)-CenterNet:目标检测转化为关键点检测及其属性回归
  2. 树莓派4B Ubuntu20.04 ROS2 ORB-SLAM3
  3. input 函数的输入和输出
  4. 【大数据实战】Logstash采集-Kafka-ElasticSearch检索
  5. iOS开发证书要点详解
  6. java的两种核心机制(一)
  7. 泛型学习第一天:List与IList的区别 (二)
  8. 【OpenCV学习笔记】【教程翻译】二(车牌识别算法框架)
  9. leetcode刷题日记-转换成小写字母
  10. 从零基础入门Tensorflow2.0 ----四、16.tfrecord基础API使用