当我在IDLE shell中运行它时,它工作正常 (COM10是一个虚拟COM端口(VCP)USB存储棒)。'enumerate serial port'循环在Tkinter中过早停止 - 但不在IDLE shell中。
>>> from serial import *
>>> import serial.tools.list_ports
>>> PortVal = sorted(serial.tools.list_ports.comports())
>>> for n,(p1,p2,p3) in enumerate(PortVal):
>>> print p1
COM1
COM10
但是,当它运行在一个Tkinter的'后的按键通话”功能...
def ShowPorts():
PortVal = sorted(serial.tools.list_ports.comports())
for n,(p1,p2,p3) in enumerate(PortVal):
print p1
一次迭代后的循环停止,就像...
(Pressed the RUN button in Wing IDE)
2.7 (r27:82525, Jul 4 2010, 09:01:59) [MSC v.1500 32 bit (Intel)]
Python Type "help", "copyright", "credits" or "license" for more information.
[evaluate SerPortTest.py]
(我按`做它”按钮...)
COM1
然后当我再次按下按钮...
COM10
COM1
任何想法,为什么 - 做什么? 这是否与某个地方的“Try”有关?
我不认为有足够的代码知道是什么问题。你确定函数正在停止,还是可能是输出不是立即显示?也许是导致问题的“Wing IDE”。你有没有尝试从命令提示符运行你的代码? –