Перейти к содержимому

Как установить pyserial на windows

  • автор:

Устанавливаем python-пакеты с помощью pip

Python 3 логотип

pip — это система управления пакетами, которая используется для установки и управления программными пакетами, написанными на Python.

Установка pip

Прежде чем с помощью pip устанавливать python-пакеты, нужно сначала установить сам pip.

Python 3.4+

Начиная с Python версии 3.4, pip поставляется вместе с интерпретатором python.

Python

  • Загрузить get-pip.py (обязательно сохранив с расширением .py).
  • Запустить этот файл (могут потребоваться права администратора).

Есть ещё один способ (для Windows). Возможно, он является более предпочтительным:

  • Установить setuptools http://www.lfd.uci.edu/~gohlke/pythonlibs/#setuptools
  • Установить pip http://www.lfd.uci.edu/~gohlke/pythonlibs/#pip

Начало работы

Попробуем с помощью pip установить какой-нибудь пакет, например, numpy:

sudo pip3 install numpy
pip3 install numpy

Может не сработать, написав: «python» не является внутренней или внешней командой, исполняемой программой или пакетным файлом (такого, скорее всего, не должно быть при установке pip вторым способом, но проверить не на чем).

Тогда нужно обращаться напрямую:

Либо добавлять папку C:\Python34\Tools\Scripts\ в PATH вручную (самому проверить не на чем, можете посмотреть на stackoverflow. У кого получится — напишите в комментарии).

Что ещё умеет делать pip

Пробежимся по основным командам pip:

pip help — помощь по доступным командам.

pip install package_name — установка пакета(ов).

pip uninstall package_name — удаление пакета(ов).

pip list — список установленных пакетов.

pip show package_name — показывает информацию об установленном пакете.

pip search — поиск пакетов по имени.

pip —proxy user:passwd@proxy.server:port — использование с прокси.

pip install -U — обновление пакета(ов).

pip install —force-reinstall — при обновлении, переустановить пакет, даже если он последней версии.

Для вставки кода на Python в комментарий заключайте его в теги

  • Модуль csv - чтение и запись CSV файлов
  • Создаём сайт на Django, используя хорошие практики. Часть 1: создаём проект
  • Онлайн-обучение Python: сравнение популярных программ
  • Книги о Python
  • GUI (графический интерфейс пользователя)
  • Курсы Python
  • Модули
  • Новости мира Python
  • NumPy
  • Обработка данных
  • Основы программирования
  • Примеры программ
  • Типы данных в Python
  • Видео
  • Python для Web
  • Работа для Python-программистов
  • Сделай свой вклад в развитие сайта!
  • Самоучитель Python
  • Карта сайта
  • Отзывы на книги по Python
  • Реклама на сайте

Писериальная установка для Python 3.X (64-разрядная версия Windows)

C:\Users\User>python Python 3.5.1 (v3.5.1:37a07cee5969, Декабрь 6 2015, 01:54:25) [MSC v.1900 64 битный (AMD64)] на win32 Введите "help", "copyright", "credits" или "license" для получения дополнительной информации.

pip install pyserial File "", line 1 pip install pyserial ^ SyntaxError: invalid syntax

Не уверен, почему возникает ошибка (возможно, этот режим работает только с LINUX / OSX?). Очень любопытно.

Черезвычайно уверенно из других сообщений, что установщик Win-32 bit pyserial не будет работать на Win64. В идеале, кто-то, кто успешно установил pyserial на Win64, может взвесить и предоставить инструкции по установке по ссылке / CLI. Потратил часы в Google, но не решил эту установку.

Поделиться Источник 25 февраля 2016 в 15:14

2 ответа

Попробуйте установить PySerial из командной строки в Windows. Просто убедитесь, что 'pip' находится в вашем PATH.

C:\Users\User>pip install pyserial 

Кстати, более новые версии PySerial имеют некоторые ошибки, которые могут повлиять на вас в Windows (они сделали это со мной). Если это произойдет, просто установите более раннюю версию PySerial. Я обнаружил, что для меня 2.7 работает отлично.

C:\Users\User>pip install pyserial=2.7 -I 

Флаг -я указывает pip игнорировать другие версии и устанавливает (или переустанавливает) определенную.

Поделиться 25 июля 2016 в 12:54

Мне интересно, сколько читателей успешно использовали процесс установки ниже. Если вы успешно пройдете, пожалуйста, УДАЛИТЕ, проголосовав за этот ответ. Пожалуйста, не голосуйте, если вы не успешно провели процедуру установки.

1) Скачано и распаковано (WinRAR): pyserial3.0.1.gz в C:\Apps\pyserial

2) В DOS CLI: cd C:\Apps\pyserial

3) В DOS CLI: python setup.py install

C:\Apps\pyserial>python setup.py install

запуск установки с запуском bdist_egg запускаю egg_info, записывая имена верхнего уровня в pyserial.egg-info\top_level.txt записывая зависимости_ссылки на pyserial.egg-info\dependency_links.txtpyserial.egg-info\PKG-INFO чтение файла манифеста 'pyserial.egg-info\SOURCES.txt' чтение шаблона манифеста 'MANIFEST.in' написание файла манифеста 'pyserial.egg-info\SOURCES.txt' установка кода библиотеки в build\bdist.win-amd64\egg запускаю install_lib запускаю build_py создание build создание build\lib создание build\lib серийное копирование serial\aio.py -> build\lib\serial копирование serial\rfc2217.py -> build\lib\serial копирование serial\rs485.py -> build\lib\serial копирование serial\serialcli.py -> build\lib\serial копирование serial\serialjava.py -> build\lib\serial копирование serial\serialposix.py -> build\lib\serial копирование serial\serialutil.py -> build\lib\serial копирование serial\serialwin32.py -> build\lib\serial копирование serial\win32.py -> build\lib\serial копирование serial__init__.py -> build\lib\serial копирование build\lib\serial копирование toolsserial\tools\hexlify_codec.py -> build\lib\serial\tools копирующий serial\tools\list_ports.py -> build\lib\serial\tools копирующий serial\tools\list_ports_common.py -> build\lib\serial\tools копирующий serial\tools\list_ports_linux.py -> build\lib\serial\tools копирующий serial\tools\list_ports_osx.py -> build\lib\serial\tools копирующий serial\tools\list_ports_posix.py -> build\lib\serial\tools копирующий serial\tools\list_ports_windows.py -> build\lib\serial\tools копирующий serial\tools\miniterm.py -> build\lib\serial\tools копирующий serial\tools__init__.py -> build\lib\serial\tools создающий build\lib\serial\urlhandler копирующий serial\urlhandler\protocol_alt.py -> build\lib\serial\urlhandler копирующий serial\urlhandler\protocol_hwgrep.py -> build\lib\serial\urlhandler копирующий serial\urlhandler\protocol_loop.py -> build\lib\serial\urlhandler копирующий serial\urlhandler\protocol_rfc2217.py -> build\lib\serial\urlhandler копирующий serial\urlhandler\protocol_socket.py -> build\lib\serial\urlhandler копирующий serial\urlhandler\protocol_spy.py -> build\lib\serial\urlhandler копирующий _31копирование serial\urlhandler__init__.py -> build\lib\serial\urlhandler создание build\lib\serial\threaded копирование serial\threaded__init__.py -> build\lib\serial\threaded создание build\bdist.win-amd64 создание build\bdist.win-amd64\egg создание build\bdist.win-amd64\egg\serial копирование build\lib\serial\aio.py -> build\bdist.win-amd64\egg\serial копирование build\lib\serial\rfc2217.py -> build\bdist.win-amd64\egg\serial копирование build\lib\serial\rs485.py -> build\bdist.win-amd64\egg\serial копирование build\lib\serial\serialcli.py -> build\bdist.win-amd64\egg\serial копирование build\lib\serial\serialjava.py -> build\bdist.win-amd64\egg\serial копирование build\lib\serial\serialposix.py -> build\bdist.win-amd64\egg\serial копирование build\lib\serial\serialutil.py -> build\bdist.win-amd64\egg\serial копирование build\lib\serial\serialwin32.py -> build\bdist.win-amd64\egg\serial создание build\bdist.win-amd64\egg\serial\threaded копирование build\lib\serial\threaded__init__.py -> build\bdist.win-amd64\egg\serial\threaded создание build\bdist.win-amd64\egg\serial\tools копирование build\lib\serial\tools\hexlify_codec.py -> build\bdist.win-amd64\egg\serial\tools копирование build\lib\serial\tools\list_ports.py -> build\bdist.win-amd64\egg\serial\tools копирование build\lib\serial\tools\list_ports_common.py -> build\bdist.win-amd64\egg\serial\tools копирование build\lib\serial\tools\list_ports_linux.py -> build\bdist.win-amd64\egg\serial\tools копирование build\lib\serial\tools\list_ports_osx.py -> build\bdist.win-amd64\egg\serial\tools копирование build\lib\serial\tools\list_ports_posix.py -> build\bdist.win-amd64\egg\serial\tools копирование build\lib\serial\tools\list_ports_windows.py -> build\bdist.win-amd64\egg\serial\tools копирование build\lib\serial\tools\miniterm.py -> build\bdist.win-amd64\egg\serial\tools копирование build\lib\serial\tools__init__.py -> build\bdist.win-amd64\egg\serial\tools build\bdist.win-amd64\egg\serial\urlhandler создание _77копирование build\lib\serial\urlhandler\protocol_alt.py -> build\bdist.win-amd64\egg\serial\urlhandler копирование build\lib\serial\urlhandler\protocol_hwgrep.py -> build\bdist.win-amd64\egg\serial\urlhandler копирование build\lib\serial\urlhandler\protocol_loop.py -> build\bdist.win-amd64\egg\serial\urlhandler копирование build\lib\serial\urlhandler\protocol_rfc2217.py -> build\bdist.win-amd64\egg\serial\urlhandler копирование build\lib\serial\urlhandler\protocol_socket.py -> build\bdist.win-amd64\egg\serial\urlhandler копирование build\lib\serial\urlhandler\protocol_spy.py -> build\bdist.win-amd64\egg\serial\urlhandler копирование build\lib\serial\urlhandler__init__.py -> build\bdist.win-amd64\egg\serial\urlhandler копирование build\lib\serial\win32.py -> build\bdist.win-amd64\egg\serial копирование build\lib\serial__init__.py -> build\bdist.win-amd64\egg\serial байтовая компиляция build\bdist.win-amd64\egg\serial\aio.py в aio.cpython-35.pyc байтовая компиляция build\bdist.win-amd64\egg\serial\rfc2217.py в rfc2217.cpython-35.pyc байтовая компиляция build\bdist.win-amd64\egg\serial\rs485.py в rs485.cpython-35.pyc байтовая компиляция build\bdist.win-amd64\egg\serial\serialcli.py в serialcli.cpython-35.pyc байтовая компиляция build\bdist.win-amd64\egg\serial\serialjava.py в serialjava.cpython-35.pyc байтовая компиляция build\bdist.win-amd64\egg\serial\serialposix.py в serialposix.cpython-35.pyc байтовая компиляция build\bdist.win-amd64\egg\serial\serialutil.py в serialutil.cpython-35.pyc байтовая компиляция build\bdist.win-amd64\egg\serial\serialwin32.py в serialwin32.cpython-35.pyc байтовая компиляция build\bdist.win-amd64\egg\serial\threaded__init__.py в init.cpython-35.pycкомпиляция байтов build\bdist.win-amd64\egg\serial\tools\hexlify_codec.py в hexlify_codec.cpython-35.pyc компиляция байтов build\bdist.win-amd64\egg\serial\tools\list_ports.py в list_ports.cpython-35.pyc компиляция байтов build\bdist.win-amd64\egg\serial\tools\list_ports_common.py в list_ports_common.cpython-35.pyc компиляция байтов build\bdist.win-amd64\egg\serial\tools\list_ports_linux.py в list_ports_linux.cpython-35.pyc компиляция байтов build\bdist.win-amd64\egg\serial\tools\list_ports_osx.py в list_ports_osx.cpython-35.pyc компиляция байтов build\bdist.win-amd64\egg\serial\tools\list_ports_posix.py в list_ports_posix.cpython-35.pyc компиляция байтов build\bdist.win-amd64\egg\serial\tools\list_ports_windows.py в list_ports_windows.cpython-35.pyc компиляция байтов build\bdist.win-amd64\egg\serial\tools\miniterm.py в miniterm.cpython-35.pyc компиляция байтов build\bdist.win-amd64\egg\serial\tools__init__.py в init.cpython-35.pyc компиляция байтов build\bdist.win-amd64\egg\serial\urlhandler\protocol_alt.py в protocol_alt.cpython-35.pyc компиляция байтов build\bdist.win-amd64\egg\serial\urlhandler\protocol_hwgrep.py в protocol_hwgrep.cpython-35.pyc компиляция байтов build\bdist.win-amd64\egg\serial\urlhandler\protocol_loop.py в protocol_loop.cpython-35.pyc компиляция байтов build\bdist.win-amd64\egg\serial\urlhandler\protocol_rfc2217.py в protocol_rfc2217.cpython-35.pyc компиляция байтов build\bdist.win-amd64\egg\serial\urlhandler\protocol_socket.py в protocol_socket.cpython-35.pyc компиляция байтов build\bdist.win-amd64\egg\serial\urlhandler\protocol_spy.py в protocol_spy.cpython-35.pycкомпиляция байтов build\bdist.win-amd64\egg\serial\urlhandler__init__.py в init.cpython-35.pyc компиляция байтов build\bdist.win-amd64\egg\serial\win32.py в win32.cpython-35.pyc компиляция байтов build\bdist.win-amd64\egg\serial__init__.py в init.cpython-35.pyc создание build\bdist.win-amd64\egg\EGG-INFO установка скриптов в build\bdist.win-amd64\egg\EGG-INFO\scripts запуск install_scripts запуск build_scripts создание build\scripts-3.5 копирование и корректировка serial\tools\miniterm.py -> build\scripts-3.5 создание build\bdist.win-amd64\egg\EGG-INFO\scripts копирование build\scripts-3.5\miniterm.py -> build\bdist.win-amd64\egg\EGG-INFO\scripts копирование pyserial.egg-info\PKG-INFO -> build\bdist.win-amd64\egg\EGG-INFO копирование pyserial.egg-info\SOURCES.txt -> build\bdist.win-amd64\egg\EGG-INFO копирование pyserial.egg-info\dependency_links.txt -> build\bdist.win-amd64\egg\EGG-INFO копирование pyserial.egg-info\top_level.txt -> build\bdist.win-amd64\egg\EGG-INFO флаг zip_safe не установлен; анализ содержимого архива. создание dist, создание 'dist\pyserial-3.0.1-py3.5.egg' и добавление 'build\bdist.win-amd64\egg' в него, удаление 'build\bdist.win-amd64\egg' (и все, что под ним) Обработка pyserial-3.0.1-py3.5.egg Копирование pyserial-3.0.1-py3.5.egg в c:\users\user\appdata\local\programs\python\python35\lib\site-packages Добавление pyserial 3.0.1 в файл easy-install.pth Установка скрипта miniterm.py в C:\Users\User\AppData\Local\Programs\Python\Python35\Scripts

Установлено c:\users\user\appdata\local\programs\python\python35\lib\site-packages\pyserial-3.0.1-py3.5.egg Обработка зависимостей для pyserial==3.0.1 Завершена обработка зависимостей для pyserial==3.0.

pyserial 3.5

История выпусков Уведомления о выпусках | Лента RSS

Эта версия

3.5b0 предварительный выпуск

Загрузка файлов

Загрузите файл для вашей платформы. Если вы не уверены, какой выбрать, узнайте больше об установке пакетов.

Источник распределения

Uploaded 23 нояб. 2020 г. source

Построенный дистрибутив

Uploaded 23 нояб. 2020 г. py2 py3

Хеши для pyserial-3.5.tar.gz

Хеши для pyserial-3.5.tar.gz

Алгоритм Хеш-дайджест
SHA256 3c77e014170dfffbd816e6ffc205e9842efb10be9f58ec16d3e8675b4925cddb Копировать
MD5 1cf25a76da59b530dbfc2cf99392dc83 Копировать
BLAKE2b-256 1e7dae3f0a63f41e4d2f6cb66a5b57197850f919f59e558159a4dd3a818f5082 Копировать

Хеши для pyserial-3.5-py2.py3-none-any.whl

Хеши для pyserial-3.5-py2.py3-none-any.whl

Алгоритм Хеш-дайджест
SHA256 c4451db6ba391ca6ca299fb3ec7bae67a5c55dde170964c7a14ceefec02f2cf0 Копировать
MD5 b6b182ebaf20199e9788214cae349df4 Копировать
BLAKE2b-256 07bc587a445451b253b285629263eb51c2d8e9bcea4fc97826266d186f96f558 Копировать

Помощь

О PyPI

Внесение вклада в PyPI

Использование PyPI

Разработано и поддерживается сообществом Python’а для сообщества Python’а.
Пожертвуйте сегодня!

PyPI", "Python Package Index" и логотипы блоков являются зарегистрированными товарными знаками Python Software Foundation.

Python & Arduino. Просто, быстро и красиво

Очень часто, у начинающих и не только разработчиков возникают вопросы. Как управлять с Arduino с компьютера? А если компьютер — не Raspberry Pi, а обычный домашний компьютер? А если не хочется мучится с ESP8266 и управлять через веб интерфейс? Неужели надо каждый раз открывать Arduino IDE и отправлять команды через Монитор порта? Именно о том, как создать своё собственное приложение с графическим интерфейсом для управления Arduino я сейчас и расскажу.

Оборудование


Недавно я заполучил очень интересную плату: Arduino SS Micro. Эта плата, внешне напоминающая Digispark Attiny 85, тем не менее является китайской версией Arduino Micro, с выведенным выходом USB.

Подробно рассказывать о ней я не буду, ведь это уже сделал пользователь YouTube с ником iomoio, и его обзор можно посмотреть здесь.

Как мне кажется — это довольно крутое и удобное устройство для небольших домашних проектов, ведь у проводов есть супер-свойство: теряться в самый неподходящий момент.

В качестве управляющего компьютера был использован MacBook Pro с операционной системой macOS Mojave, но не надо закрывать статью, если вы используете Windows или Linux — всё описанное в статье будет работать без изменений на любой операционной системе.

Скетч для Arduino

В качестве примера будет использоваться скетч, включающий и выключающий светодиод, по команде из Serial-порта.

Светодиод в Arduino SS Micro висит на порте SS, и поэтому он автоматически выключается. Не смотря на это, стандартный пример Blink — мигающий светодиод работает.

char inChar; #define LED_PIN SS void setup() < pinMode(LED_PIN, OUTPUT); // Инициализация светодиода Serial.begin(115200); // Инициализация Serial - порта >void loop() < if (Serial.available() >0) < inChar = Serial.read(); if (inChar=='e') // e - Enable - включить < digitalWrite(LED_PIN,HIGH); >> else if (inChar=='d') // d - Disable - выключить < digitalWrite(LED_PIN,LOW); >else if (inChar=='b') // b - Blink - выключить режим мигания < while (true)< digitalWrite(LED_PIN,HIGH); delay(1000); digitalWrite(LED_PIN,LOW); delay(1000); >> > 

Если вы будете использовать другую Arduino — не забудьте сменить пин светодиода.

Код для компьютера

Одним из достоинств Python, кроме его кроссплатформенности — наличие гигантского числа библиотек. Нам понадобятся:

  • PySerial — библиотека для работы с Serial-портом
  • PyQT5 — библиотека для создания графического интерфейса
Установка

Для установки, воспользуемся встроенным менеджером пакетов — pip.

pip install pyserial pyqt5

Для удобства создания GUI можно установить программу QTDesigner.

Интерфейс

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

Исходный код

Вся работа с устройством происходит благодаря библиотеке PySerial. Но есть несколько нюансов. Например, как узнать, в какой из портов подключено устройство?

На всем прекрасно известном сайте stackoverflow, пользователь с ником Thomas предложил уже готовое решение, которое я и использовал.

def serial_ports(): """ Lists serial port names :raises EnvironmentError: On unsupported or unknown platforms :returns: A list of the serial ports available on the system """ if sys.platform.startswith('win'): ports = ['COM%s' % (i + 1) for i in range(256)] elif sys.platform.startswith('linux') or sys.platform.startswith('cygwin'): # this excludes your current terminal "/dev/tty" ports = glob.glob('/dev/tty[A-Za-z]*') elif sys.platform.startswith('darwin'): ports = glob.glob('/dev/tty.*') else: raise EnvironmentError('Unsupported platform') result = [] for port in ports: try: s = serial.Serial(port) s.close() result.append(port) except (OSError, serial.SerialException): pass return result 

Кроме этого необходимо хранить список доступных скоростей:

speeds = ['1200','2400', '4800', '9600', '19200', '38400', '57600', '115200']

А теперь соберём вместе дизайн(созданный в QtDesigner и сконвертированный с помощью утилиты pyuic5 в .py файл), функции для сканирования портов и основной код программы.

Основной класс, содержащий в себе всю логику программы

 class LedApp(QtWidgets.QMainWindow, design.Ui_Form): def __init__(self): super().__init__() self.setupUi(self) self.Port.addItems(serial_ports()) self.Speed.addItems(speeds) self.realport = None self.ConnectButton.clicked.connect(self.connect) self.EnableBtn.clicked.connect(self.send) def connect(self): try: self.realport = serial.Serial(self.Port.currentText(),int(self.Speed.currentText())) self.ConnectButton.setStyleSheet("background-color: green") self.ConnectButton.setText('Подключено') except Exception as e: print(e) def send(self): if self.realport: self.realport.write(b'b') 

Переменные self.Port и self.Speed — это выпадающие списки, содержащие в себе значения доступных портов и скоростей.

При нажатии на кнопку self.ConnectButton вызывается функция connect, в которой производится попытка подключения к заданному порту с заданной скоростью. Если подключение успешно, то кнопка окрашивается в зелёный цвет, и меняется надпись.

Функция send отправляет в наш порт байтовую строку — заставляющую включить режим мигания.

Таким образом можно управлять различными устройствами, подключёнными к USB.

Данная статья является вводной и обзорной, более полную информацию можно найти например тут:

  • PySerial
  • PyQT
  • Serial в Arduino

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Luxury Car Rental in Miami | Reserve a Premium Vehicle with RealCar