Подключение к сети Wi-Fi с использованием Python - PullRequest
0 голосов
/ 05 марта 2019

У меня есть этот код, который должен подключаться к Wi-Fi с использованием заданного ESSID и пароля. Вот код:

def wifi_connect(essid, password):
# Connect to the wifi. Based on the example in the micropython
# documentation.
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
    print('connecting to network ' + essid + '...')
    wlan.connect(essid, password)
    # connect() appears to be async - waiting for it to complete
    while not wlan.isconnected():
        print('waiting for connection...')
        print('checking connection...')
    print('Wifi connect successful, network config: %s' % repr(wlan.ifconfig()))
else:
    # Note that connection info is stored in non-volatile memory. If
    # you are connected to the wrong network, do an explicity disconnect()
    # and then reconnect.
    print('Wifi already connected, network config: %s' % repr(wlan.ifconfig()))

Сначала я получил сообщение об ошибке, что сеть не была установлена. Это было исправлено простым использованием pip для установки сети. После того, как я запустил это снова, он сказал мне, что сеть не имеет атрибута WLAN. Как это исправить? Что я делаю не так?

1 Ответ

0 голосов
/ 05 марта 2019

Вы пытаетесь запустить код, предназначенный для языка MicroPython , и он не будет работать на CPython (версия Python, которую вы скачаете с Python.org или найдете установленной на большинстве ПК и серверов).

MicroPython предназначен для работы на встраиваемом специализированном оборудовании и поставляется с собственной библиотекой для поддержки оборудования, на котором он работает, включая модуль network :

Чтобы использовать этот модуль, необходимо установить вариант / сборку MicroPython с сетевыми возможностями.Сетевые драйверы для конкретного оборудования доступны в этом модуле и используются для настройки аппаратного сетевого интерфейса (ов).

Об этом говорится в комментариях вверху:

# [...] Based on the example in the micropython
# documentation.

Код не может работать на «обычном» CPython.Вы установили PyPI network проект , который представляет собой совершенно другой модуль, , изначально разработанный для помощи в изучении кодирования для Raspberry PI .

Какой проект может работа зависит от вашей операционной системы (ОС).Различные ОС используют разные программные интерфейсы, чтобы позволить программам изменять сети.Большинство из них имеют инструменты командной строки , позволяющие вам сделать это, что должно быть легко осуществимо из Python с модулем subprocess :

...