Python 为什么serial.tools在os.system中可用,但没有?
我正在努力让Python从微控制器读取数据,微控制器每秒通过COM端口发送一个简短的状态字符串 由于μC(最好不要说哪个)有一个相当狡猾的serialoverusb实现,我需要定期检查COM端口是否存在 我可以使用Python 为什么serial.tools在os.system中可用,但没有?,python,pyserial,Python,Pyserial,我正在努力让Python从微控制器读取数据,微控制器每秒通过COM端口发送一个简短的状态字符串 由于μC(最好不要说哪个)有一个相当狡猾的serialoverusb实现,我需要定期检查COM端口是否存在 我可以使用os.system('python-m serial.tools.list_ports')在Eclipse控制台中返回端口。到目前为止一切都很好 现在,我想进入下一步,将其输出传递到一个变量中,并进一步处理-这就是我要取消锁定的地方。我本以为可以使用例如:s=serial.tools.
os.system('python-m serial.tools.list_ports')
在Eclipse控制台中返回端口。到目前为止一切都很好
现在,我想进入下一步,将其输出传递到一个变量中,并进一步处理-这就是我要取消锁定的地方。我本以为可以使用例如:s=serial.tools.list_port
进行分配,但在此上下文中,serial
中没有tools
这是为什么?如果您只导入
串行
,则无法直接访问串行工具
,因为工具
是串行
包中的另一个模块(实际上是一个子包)。serial
软件包不会为您导入它。有些包会自动导入它们所包含的部分或全部模块和子包,但这种行为需要由包开发人员进行专门编码,除非您自己导入内部模块,否则Python不会这样做
尝试显式导入要使用的模块:
import serial.tools.list_ports
serial.tools.list_ports.main()
main
函数实现运行python-m serial.tools.list\u port
时看到的行为。我在Sourceforge上的搜索中找到了它的名字。也许你可以发布一个小脚本来说明你的问题?也许你忘了一个进口货?