Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么serial.tools在os.system中可用,但没有?_Python_Pyserial - Fatal编程技术网

Python 为什么serial.tools在os.system中可用,但没有?

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.

我正在努力让Python从微控制器读取数据,微控制器每秒通过COM端口发送一个简短的状态字符串

由于μC(最好不要说哪个)有一个相当狡猾的serialoverusb实现,我需要定期检查COM端口是否存在

我可以使用
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上的搜索中找到了它的名字。

也许你可以发布一个小脚本来说明你的问题?也许你忘了一个进口货?