Я не могу импортировать модуль в Python 3.7, так как он направлен в python2 .7 - PullRequest
0 голосов
/ 15 апреля 2020

Я новичок в кодировании. Мне дали Raspberry Pi 4 на Рождество, и я пытаюсь использовать ее для создания автоматической системы полива. Моя проблема в том, что я не могу отправить данные с емкостного датчика почвы через мой ESP32 на Pi. Я просмотрел несколько онлайн-источников и попробовал несколько разных способов заставить мой ESP32 отправлять данные в Pi без каких-либо положительных результатов. При использовании строк кода ниже я получил ошибку.

import time
import machine
adc = machine.ADC(machine.Pin(34))
print(adc.read())

Traceback (последний вызов был последним): файл "/ home / pi / Documents / esp32 test.py", строка 2, в машине импорта ModuleNotFoundError: Нет модуля с именем 'machine'

У некоторых людей из-за переполнения стека были подобные проблемы с установкой модулей, и я попробовал следовать с pip и pip3, однако они не перенесли мою установку из каталога python2 .7 в python3 .7. Я использую python3 .7, потому что Thonny IDE использует его, и я думаю, что программа не может найти «модуль с именем« machine »», потому что он сохранен в python2 .7. Я также попытался скопировать «machine-0.0.1.dist-info» из dist-пакетов с 2.7 по 3.7, но обнаружил следующее:

machine-0.0.1.dist-info: Ошибка создания каталога / usr /local/lib/python3.7/dist-packages/machine-0.0.1.dist-info: В доступе отказано

Буду признателен, если кто-то поделится своими знаниями о том, как перемещать «машину» модуль на python3 .7 или представить другой способ получить Raspberry Pi 4 для связи с ESP32. Благодаря.

Ответы [ 2 ]

0 голосов
/ 15 апреля 2020

Код Python, который вы разместили, кажется, код Micro Python, который предназначен для запуска на ESP32, а не на Raspberry Pi:

https://docs.micropython.org/en/latest/esp32/quickref.html

Примечание
Не пытайтесь запустить pip install machine на Raspberry Pi. Он не загрузит нужный пакет. Вместо этого он установит этот пакет: https://pypi.org/project/machine/, что совсем не то, что вам нужно.


При этом:
При установке пакетов с использованием pip, вы, вероятно, не хотите устанавливать их в масштабе всей системы, поскольку для этого требуются разрешения root, что является плохой практикой и может быть опасным, поскольку вы даете неизвестный код полный административный контроль над вашей системой.

Существует две альтернативы:

1. Используйте виртуальную среду

Подробнее читайте здесь: https://docs.python.org/3/library/venv.html

В основном:

python3.7 -m venv ~/myvenv
source ~/myvenv/bin/activate
pip install <package>

Для работы над проектом у вас будет активировать виртуальную среду. Любая приличная IDE имеет возможность сделать это автоматически.
Это самое чистое решение, потому что оно хранит пакеты для разных проектов отдельно.

2. Установите пакет на уровне пользователя

. Он устанавливает пакеты в ~/.local/lib/python3.7/site-packages, который находится в вашем домашнем каталоге, поэтому для него не требуются разрешения root.

Чтобы убедиться, что вы ' Устанавливая пакет для правильной версии Python, вы можете запустить pip из Python вместо прямого запуска pip install.

python3.7 -m pip install --user <package>
0 голосов
/ 15 апреля 2020

Вы можете указать версии либо в частичной, либо в полной форме, чтобы затем установить нужные версии python.

Если вы хотите выбирать версии для каждой команды, вы можете использовать параметры командной строки, такие как: py -3 -m pip install packagename (для 3.7) py -2 -m pip install packagename (для 2.7)

Это должно хорошо работать, если python установлен правильно.

...