Программа Python останавливается в командной строке
Я много искал о проблеме VMware с python, но не нашел никакой информации о своей проблеме. Моя проблема в том, что программы на python зависают, процесс все еще работает, но не использует процессор и использование памяти не меняется. Программа не возвращает никаких исключений или чего-либо ... она просто останавливается и никогда не возвращается к выполнению. Похоже, что это происходит случайно, и это не проблема с отсутствием памяти для моей машины, потому что в то же время я могу выполнить ее в другой сессии.
Моя машина является виртуальной машиной с: Windows Server 2008 64-bit, VMware Tools 9.4.5
Я пробовал Python: 2.7, 3.3 и 3.4
мой пример скрипта: (но не только этот скрипт зависает)
print("START")
for i in range(0, 1000):
print("step: " + str(i))
file = open("./test_file.csv", "r") #file size is 1.2GB but I have 10GB RAM
for line in file.readlines():
pass
file.close() #close the file
print("END")
Пример вывода:
START
step 0
step 1
step 2
step 3
step 4
и он зависает, это случайно на каком шаге (иногда 4, 15, 34 ...) Все, что я могу сделать, это остановить процесс и запустить его снова. Во время выполнения я вижу, что программа повторяется, использует 1,2 ГБ ОЗУ и освобождает ... использует и выпускает. Замораживание всегда происходит после освобождения памяти, и с этого времени использование памяти стабильно, а загрузка ЦП для этого процесса составляет 0%.
Я запускаю скрипт в IDLE, чтобы поиграть с отладчиком и просмотрщиком стека, но когда программа зависает, весь бездействующий не отвечает. Также я попробовал это на других без виртуальной машины, и нет проблем.
Буду благодарен за любые предложения, как решить или отладить такие проблемы.