我遇到了每隔几天发生一次的奇怪错误。我在运行Python脚本的Google Cloud上运行了多个虚拟机。 Python文件非常大,但卡住的部分如下:
try:
f = urlopen('https://resources.lendingclub.com/SecondaryMarketAllNotes.csv')
df = pd.read_csv(f)
except:
print('error')
第一行代码始终有效,但第二行有时会停止程序。我的意思是程序不会继续执行,但它不会引发任何错误。我在调试模式下运行了我的代码中的记录器,它没有记录任何内容。
同样,这种情况很少发生,但一旦发生,我的虚拟机就会停止。当我查看top
中的进程时,我看到Python以0%CPU运行,并且仍有大量系统内存可用。它将继续在那里停留数小时,而不会转到下一行代码或返回错误。
我的应用程序对时间非常敏感,使用urlopen比使用pd.read_csv
直接打开文件更快。
我注意到,当发生这种罕见错误时,它会在我的所有虚拟机中同时发生,这意味着正在下载的文件可能会触发此问题。为什么它不会导致错误超出我的范围。
我非常感谢有关可能导致此问题的原因以及可能提供的解决方法。
我使用的是Python 3.5.3和pandas 0.19.2