Подтвердить что ты не робот

Ошибка "ValueError: не может форматировать даты на ранней стадии" на одном ПК, работает на других

У меня есть Python script, который отлично работает на моем компьютере разработки. Оба являются Windows 7 с той же версией Python (2.7.9). Однако на целевой машине я получаю

ValueError: не может форматировать даты в начале

Ошибка появляется из модуля pywin32.

В коде используется сторонняя библиотека, вызываемая pywin32:

raw = win32com.client.Dispatch("MyLib.MyClass")

а затем не выполняется:

acq_time = raw.GetCreationDate()

Теперь я потерялся, почему это работает на моем ПК, а не на целевой машине. Оба имеют "корпоративную установку" Windows 7, например, те же региональные и датские настройки.

В чем проблема? Как я могу его решить?

EDIT:

См. комментарии. Причина, вероятно, в том, что используется С++. Я все еще расследую. Теперь я подозреваю, что имеет значение, какое время работы присутствует во время установки pywin32. Зачем? Поскольку DependenyWalker на моем ПК разработчиков говорит, что pywin зависит от MSVCR90.DLL в моей установке Lotus Notes. Это говорит мне, что уверен, что это не "сложно".

Обновление 30.06.2015:

Я ошибся... Проблема теперь также происходит на моем ПК.

Дополнительная информация. script считывает файлы данных и вставляет метаданных в базу данных. Кажется, что только старые файлы были затронуты ошибка, а не новые (теперь я думаю, что это предположение неверно). Поэтому идея заключалась в начальной загрузке моего Dev-ПК, а затем надеемся, что проблема не повторится с новыми файлами.

В случае ПК были запущены script, файлы, которые он читает, находятся на Windows Shared drive (подключенный сетевой диск). У меня нет доступа к этому поэтому я просто скопировал файлы на свой компьютер. Теперь для выполнения начального я запросил доступ к указанному сетевому диску и BOOM. Он также не работа от моего Dev. при чтении с общего диска.

Проблема не всегда происходит с тем же файлом. Теперь я думаю, что это не имеет никакого отношения к определенному файлу. Я также попробовал это на 64-битном ПК с 64-битным питоном. Там дольше произошла ошибка. Фактически файл был успешно прочитан, что не удалось на моем ПК. Теперь я думаю, что это какая-то проблема с памятью? Я считаю, что он всегда терпит неудачу в строке даты, потому что все остальные строки просто возвращают нулевую или пустую строку, которая не вызывает никаких проблем и вполне возможна, такое значение может быть нулевым. Но для даты это проблема, и она не должна быть нулевой, а затем выдается ошибка.

ИЗМЕНИТЬ Обновление:

На моем ПК он всегда терпит неудачу в том же файле. Загрузка этого файла работает отлично. Теперь я думаю, что это нечто вроде переполнения счетчика/числа, которое после чтения n файлов возникает. Это связано с количеством загружаемых файлов за один запуск script, а не с самого файла. Файлы, которые не работают при загрузке отдельно.

4b9b3361

Ответ 1

Оказывается, проблема на самом деле тривиальна и несколько из-за моего отсутствия опыта работы с python и вводящего в заблуждение сообщения об ошибке.

COM-объект raw = win32com.client.Dispatch("MyLib.MyClass") используется для открытия проприетарных файлов в цикле. Чтобы решить проблему, нужно "очистить" объект до следующей итерации. Это делается либо

del raw или raw = None.

Это полностью решает проблему. Это не имеет ничего общего с датами и датами. Таким образом, Питер Бриттен, вероятно, был прав, что этот предел файла был достигнут.