Скрипт Python прекрасно работает в оболочке, но выдает [Errno 2] «Нет такого файла в каталоге», когда я запускаю его в консоли - PullRequest
0 голосов
/ 28 марта 2019

Я не могу заставить скрипт запускаться с консоли на raspberry pi 3B + (в конечном счете, для запуска скрипта при загрузке), хотя он отлично работает в Thonny.Я получаю следующую ошибку: FileNotFoundError: [Errno 2] Нет такого файла или каталога: 'image1.jpg' Мои файлы сценариев и изображений находятся в одной папке, и сценарий создает первое изображение с именем image1.jpg прямо передошибка.

Цель кода - сделать снимки с помощью Picame и отправить их через запросы PUT json на онлайн-платформу.Я подумал, что, возможно, скрипт, работающий на консоли, работает быстрее, и Pi не успевает сохранить файл изображения перед его отправкой.Я попытался отложить запрос Json, но это не проблема.Ниже приведен не весь мой код, а область, в которой проблема наиболее вероятна.

Это начало цикла, в котором файлы изображений создаются и индексируются с помощью "галочки"

camera = PiCamera()
go = 1
tick = 1
starttime=time.time()
deltick = 1
camera.resolution = (640, 480)
while go == 1:

camera.capture('/home/pi/ghettoCam/image%s.jpg' % tick)

image = '/home/pi/ghettoCam/image%s.jpg' % tick


#this is the Json part where the images are sent out

url = 'destinationURL'

###### Parameters to update ##################

thingName = 'armedResponder2'
propName = 'video'
imageName = 'image%s.jpg' % tick

#below is where I get the error
with open(imageName, "rb") as image_file:
    imageSend = base64.b64encode(image_file.read())

payload = {propName: imageSend} 

# Extend this as needed {'prop1': data1,'prop2': data2, etc.}

###### End Parameters ############################

headers = { 'Content-Type': 'application/json', 'appKey': '1c6026f9-2310-4e36-98b5-8b4aa0e35dfc' } 
response = requests.put(url + '/Things/'+ thingName+ '/Properties/*', headers=headers, json=payload, verify=False) 

#tick update

tick = tick+1
* 1007.* Ожидаемые результаты: программа работает так же, как и в IDLE, каждую секунду снимает изображение и успешно отправляет его на платформу.

Фактические результаты: при запуске сценария в консоли появляется ошибка, описанная ранее.после того, как была сделана только одна фотография и отправлено уведомление на онлайн-платформу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...