Python — библиотека времени выполнения Microsoft Visual C ++: ошибка времени выполнения

Я столкнулся с проблемой при запуске своей программы на Python. Ниже приведены советы по ошибкам.
Я использовал библиотеку matplotlib.pyplot в моих кодах для реализации топологического графика в реальном времени. Программа может успешно работать, но каждый раз, когда я перетаскиваю окно графика, выскочила ошибка. Я не знаю, как это исправить. Пожалуйста, дайте мне несколько советов об этом, спасибо и с уважением!

ошибка говорит:

Rumtime Error!
Program:D:\academic software\Python\pythonw.exe

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

коды:

from socket import *
from time   import ctime
from binascii import *
from sys import *
from d_deal import *
from d_trans import *
import sys
from pyqtgraph.Qt import QtGui, QtCore
import numpy as np
import pyqtgraph as pg
from threading import *
import networkx as nx
import matplotlib.pyplot as plt
from frame import *app = QtGui.QApplication([])
plt.ion()

#define the global variables
link=[]
link_list=[]    #the list of the links
link_loss=[]    #the loss time of the relevant links
link_flags=[]    #the flag of whether del the link

global g
g=nx.Graph()
plt.figure("topology",figsize=(6,6),facecolor='white')def tp_dorule():
global f,link_list

link_flag=1
link_flag_sd=1
link_flag_so=1if f.sour==f.orig:
for i in range(len(link_list)):
if (f.sour,f.dest)==link_list[i] or (f.dest,f.sour)==link_list[i]:
link_flag=0
if link_flag==1:
link_list.append((f.sour,f.dest))
link_loss.append(0)
link_flags.append(1)
else:
for i in range(len(link_list)):
if (f.sour,f.dest)==link_list[i] or (f.dest,f.sour)==link_list[i]:
link_flag_sd=0
for j in range(len(link_list)):
if (f.sour,f.orig)==link_list[j] or (f.orig,f.sour)==link_list[j]:
link_flag_so=0

if link_flag_sd==1:
link_list.append((f.sour,f.dest))
link_loss.append(0)
link_flags.append(1)
if link_flag_so==1:
link_list.append((f.sour,f.orig))
link_loss.append(0)
link_flags.append(1)
print link_list

for i in range(len(link_list)):
if (f.sour,f.dest)!=link_list[i] and (f.dest,f.sour)!=link_list[i] and (f.orig,f.dest)!=link_list[i] and (f.dest,f.orig)!=link_list[i]:
link_loss[i]+=1
else:
link_loss[i]=0
print link_loss

def tp_update():
global g,link_list
plt.clf()
link=[]
for i in range(len(link_loss)):
if link_loss[i]>=2:
link_flags[i]=0
for i in range(len(link_flags)):
if link_flags[i]!=0:
link.append(link_list[i])
print link
g.add_edges_from(link)
pos=nx.spectral_layout(g)
nx.draw(g,pos,with_labels=True,node_size=500)
plt.draw()def update():
tp_update()####the timer interrupte
timer = QtCore.QTimer()
timer.timeout.connect(update)
timer.start(1000)

####the data dealing part
def data_deal():
print '2'
#set the udp transportation parameters
HOST = '127.0.0.1'
PORT = 1031
BUFSIZ = 2048
ADDR = (HOST, PORT)

#the pid debug text
PID=os.getpid()
file=open("PID.txt",'w')
file.write(str(PID))
file.close()

#binding the udp address
udpSerSock = socket(AF_INET, SOCK_DGRAM)
udpSerSock.bind(ADDR)
#the main function
while True:
#receive the raw data
raw_data,addr=udpSerSock.recvfrom(BUFSIZ)

if not raw_data:
continue
##dealing with the raw_data(not solute yet)
data=hexlify(raw_data)
print data
global f
f=data_dealing(data)
data_trans(f)
print '1'
if f.ftype != 'else frame' and f.ftype != 'ack frame':
tp_dorule()th2 = Thread(target=data_deal)
th2.start()

if __name__ == '__main__':
import sys
if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'):
sys.exit(app.instance().exec_())

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]