背景
我用Thonny在ESP32上写程序,需要下载第三方库时,Thonny程序本身的工具-管理包,就像pip install XX一样实现下载功能今天,我看了Bzhan某老师的视频,学习了——如何用thonny程序修改和记录镜像源。
这位老师的视频链接是: Thonny:Windows的下载管理pip切换到清华源了
3559 WWW.Bilibili.com /视频/BV11 C4 Y1 H7 MN? 来自=搜索序列=16354982035943528261从=333.337.0.0
准备工作
1.MCU的IDE软件:我安装了Thonny3.3.11。 下载地址: https://thonny.org/2 .计算机网络
修改前注意的敌方
1.Thonny菜单栏-工具的“管理包”和“Thonny插件”的区别:管理包:需要插入到ESP32连接中。 管理包可以选择黑色。 否则,无法选择灰色。 “管理包”理解为直接将第三方库下载到了ESP32上。
左下方是为插入ESP32而出现的MIrcoPython设备对话框。 此时,工具-管理包将变为黑色选项
“Thonny插件”:请选择“asttokens”之类的插件。 右侧显示的是安装位置不是ESP32,而是我电脑上的d :t honnylibsite-packages。
工具-单击-Thonny插件以确定已安装的软件包的位置,并将其安装在d :t honnylibsite-packages文件夹中
2 .打开shell终端的请求:插入ESP32和未插入ESP32时,工具-打开系统shell弹出的窗口不同。
Thonny-工具-打开系统壳
连接到ESP32并打开shell终端后,将显示以下窗口: 在此处输入python命令(如pip install XX )是不好的。 另外,显示该窗口后,ESP32将直接与计算机断开连接。 (按下ESP32上的reset按钮,然后重新连接。 )
连接到ESP32的外壳终端
如果没有连接到ESP32,打开shell终端,将显示以下窗口,您可以在此窗口中输入python命令。 在此窗口中查看或更改镜像源
未连接到ESP32时的shell终端
查看现有镜像源
在c :users 管理员的外壳终端窗口中输入pip配置列表
输入pip config list后,将显示当前的镜像源
备注:因为我以前安装过永久镜像源,所以现在显示的是清华的镜像源。 通常,如果未更改镜像源,则应该什么也看不到。
修改镜像源
1.第一种方法:在cmd窗口中输入以下内容(选择阿里巴巴云(AlibabaCloud )的镜像源) )。
pip安装pip-u
pipconfigsetglobal.index-URL http://微软. a liyun.com/pypi /简单/
ge/031a5719bca540fdb9e2b392cbe13c11?from=pc">2.第二种方法
我们在上面的cmd窗口中,发现倒数4句中显示
Writing to C:UsersAdministratorAppDataRoamingpippip.ini
这是说镜像源已经修改,形成一个pip.ini的配置文件,接下来我们找一个这个文件
以后我们可以在这里修改镜像源,把https...替换成别的url就行了
注意:也可以用这种方法,首次修改镜像源,但一定要准确的位置新建pip文件夹,并且在pip文件夹里新建pip.ini。
我第一次做的时候,在网上查说在C:UsersXXpippip.ini(XX是电脑现在使用的账号名称),结果就没找到准确位置,却在C:UsersAdministrator里面添加的pip文件夹,结果怎么也改不了镜像源,花了好多时间,希望大家可以用第一种方法先找到准确位置,再用第二种方法修改,能少走弯路。
Thonny的管理包下载
在thonny工具-管理包,上方文本框输入luma,点击Search on PyPI进行搜索。
出现对话框的下面一句,说明已经按照修改的镜像源下载第三方库了
Looking in indexes: https//pypi.mirrors.ustc.edu.cn/simple/
操作遇到的问题,需要大神帮我指点指点
0.提前说一声,我想做esp32驱动tft_espi的彩屏(芯片st7735),网上说github网站上的luma库好用,我就在管理包里输入了luma,找到了luma.lcd。
1.之前用的阿里云镜像源没有luma这个库,我又修改为中国科技大学的镜像源
https://pypi.mirrors.ustc.edu.cn/simple/
但经过实际操作后,发现通过这个镜像源下载,依然很慢。。。。。。我怀疑是下载库之后还要拷在ESP32中,所以很慢。
2.下载过程到4%就报错,按ESP32重启键,仍然报错。我看报错语句发现,这个下载库的过程要读取ESP32的主程序main.py,可能是之前的main.py对下载有影响。虽然不懂它的逻辑,但我把luma的test_st7735.py(里面有调用luma的声明)考到ESP32中,再修改了main.py让其与下载库相关,再次执行包安装。
#调用与luma相关的程序,避免下载时报错
from test_st7735 import test_init_128x128
if __name__== 'main':
test_init_128x128()
3.改完程序后,再次下载到20%时又报错了,还是因为main.py引发的报错,我不懂其中逻辑,难道是luma库下载到ESP32中,与main.py犯冲突了(不应该有main.py)?
还是luma库不应该下载到ESP32中,而是下载在电脑中,以备main.py调用?
4.如果luma库是下载在电脑中以备调用,那我电脑里下载了两个python版本,一个是python3.8.6被geany使用,一个是python3.7被thonny使用。thonny插件安装在3.8.6的set-packages里了,在ESP32程序中调用总报错说没有luma库。
请大神指点一下。