У меня есть собственный скрипт python, который зависит от и библиотеки pySerial
. Я пытаюсь развернуть его на маршрутизаторе, который запускает интерпретатор python.Проблема с развертыванием pySerial
MinimalModbus
- это всего лишь один файл .py, который тривиально развертывать. Однако библиотека pySerial
представляется гораздо более надежной. Это похоже на несколько файлов python, которые работают вместе, чтобы «автоматически выбрать соответствующий бэкэнд».
Нужно ли «установить» pySerial
, чтобы использовать его? Или есть способ извлечь только подходящие файлы/зависимости для данной ОС?
Я не знаю, что все выполняется, когда вы запускаете setup.py pySerial (например, файлы, скопированные?). Я не знаю, будет ли это работать для такого типа развертывания. Я надеялся просто указать конкретные файлы.
Любая помощь будет оценена по достоинству.
Мы используем Python версии 2.6.
Update:
Я в основном взял «установленные» файлы из/пакетов участка/серийной папки на моем окне развития и загрузив их в устройство. Это привело меня немного дальше; Однако, сейчас я получаю следующее сообщение об ошибке:
Line ~ 273 serialposix.py, это призывающее:
self.fd = os.open(self.portstr, os.O_RDWR|os.O_NOCTTY|os.O_NONBLOCK)
Почему бы не быть в состоянии найти os.open
рутину?
Update 2:
Дальнейшее упрощение задачи, мой сценарий теперь состоит из чего-то же просто, как в следующем, и он все еще терпит неудачу с такой же ошибкой:
import os
serfd = os.open("/com/0", os.O_RDWR | os.O_NONBLOCK)
Под Python Standard Modules with Digi-Specific behavior, они внесите следующий комментарий о модуле os:
Использование модуля os в устройствах Digi в настоящее время очень ограничено. Основная цель заключается в том, чтобы разрешить доступ к последовательным портам, которые представлены в виде узлов в файловой системе. Последовательные порты доступны в виде файлов с контуром в форме/com/0, при этом нуль заменяется индексом на основе нуля последовательного порта для управления.
Кроме того, оба их примерных приложения используют процедуру os.open для последовательной связи.
Я бы ожидал увидеть ошибку, такую как: OSError: [Errno 2] Нет такого файла или каталога: '/ com/0', но это не тот случай. Python даже не может найти программу os.open.
Вы ожидаете, что файл os.py будет иметь определенную процедуру def open(...)
?
Не можете ли вы что-то сделать для вас, например [pip] (https://pypi.python.org/pypi/pip/)? –
Я все еще узнаю об этом устройстве (маршрутизаторе) и питоне, но я не думаю, что у маршрутизатора есть «традиционная» установка python. Все основные библиотеки и файлы python содержатся в архиве с именем python.zip. Я верю во время выполнения, еще один компонент python с именем zipimport «извлекает» эти файлы, запускает программу и очищает их. Вы когда-нибудь слышали об этом? Я добавил файлы pySerial в свой собственный zip-файл, который ведет себя аналогичным образом. Но что-то еще не совсем верно ... –
'serialposix' не должен использоваться в Windows IIRC, см. Https://github.com/makerbot/pyserial/tree/master/serial pyserial' __init__' импортирует фактические функции из posix или окон или реализация Java. общие функции в serialutil. У вас есть родной win32 python или какая-то DIY-сборка? возможно, mingw? –