我不熟悉编码。圣诞节我得到了一个树莓皮4,我正试图用它来制作一个自动喷水灭火系统。我的问题是,我无法通过ESP32将电容式土壤传感器的数据发送到Pi。我查看了几个在线来源,并尝试了几种不同的方法,让我的ESP32将数据发送到Pi,但没有任何积极的结果。当使用下面的代码行时,我收到一个错误
import time
import machine
adc = machine.ADC(machine.Pin(34))
print(adc.read())
回溯(最近一次呼叫最后一次): 文件“/home/pi/Documents/esp32 test.py”,第2行,在 进口机器 ModuleNotFoundError:没有名为“machine”的模块
堆栈溢出上的一些人在安装模块时遇到了类似的问题,我尝试了使用pip和pip3,但是这些人没有将我的安装从python2.7目录移动到python3.7。我使用python3.7是因为ThonnyIDE使用它,我认为程序找不到“名为‘machine’的模块”,因为它保存到python2.7。 我还尝试从2.7到3.7的dist包中复制“machine-0.0.1.dist info”,但发现:
machine-0.0.1.dist-info:创建目录/usr/local/lib/python3.7/dist-packages/machine-0.0.1.dist-info时出错:权限被拒绝
如果有人能分享他们关于如何将“机器”模块移动到python3.7的知识,或者提供一种不同的方式让树莓pi 4与ESP32通信,我将不胜感激。 谢谢
您可以指定部分或完整形式的版本,以便安装到所需的python版本
如果要为每个命令选择版本,可以使用以下命令行选项: py-3-m pip安装包名称(适用于3.7) py-2-m pip安装包名称(适用于2.7)
如果python安装正确,这应该可以很好地工作
您发布的Python代码似乎是打算在ESP32上运行的MicroPython代码,而不是在Raspberry Pi上运行:
https://docs.micropython.org/en/latest/esp32/quickref.html
注意
不要试图在树莓圆周率上运行
pip install machine
它不会下载正确的软件包。相反,它会安装这个软件包:https://pypi.org/project/machine/,这根本不是您需要的话虽如此:
当使用pip安装软件包时,您可能不想在系统范围内安装它们,因为这需要根权限,这是一种不好的做法,而且可能很危险,因为您正在为未知代码授予管理员对系统的完全控制权
有两种选择:
一,。使用虚拟环境
阅读更多信息:https://docs.python.org/3/library/venv.html
基本上:
要处理项目,您必须激活虚拟环境。任何像样的IDE都有自动执行此操作的选项。
这是最干净的解决方案,因为它将不同项目的包分开
二,。在用户级别安装软件包
这将在主目录中的
~/.local/lib/python3.7/site-packages
中安装程序包,因此不需要root权限为了确保安装的包是正确的Python版本,可以从Python运行pip,而不是直接运行
pip install
相关问题 更多 >
编程相关推荐