distutils не перекомпилирует модули расширения C - PullRequest
0 голосов
/ 08 апреля 2011

Я пытаюсь использовать distutils с модулем Python, который содержит расширения, написанные на C. Программный код размещается на сервере Linux, но я иногда загружаю изменения с машины Windows, используя программу передачи файлов WinSCP (редактирование выполняетсяв блокноте ++).Я заметил, что distutils часто не замечает этих изменений в коде C (т.е. python setup.py build не вызывает gcc, если код был скомпилирован ранее).Проверка исходного кода C на сервере показывает, что он действительно обновлен правильно.С другой стороны, изменение кода непосредственно на сервере с помощью текстового редактора, такого как vim, всегда заставляет python setup.py build перекомпилировать измененные файлы.Любая идея, почему загрузка измененных файлов не может привести к тому, что distutils перекомпилирует их?

Спасибо.

РЕДАКТИРОВАТЬ: После дальнейшего изучения я замечаю ту же проблему, если я просто создаю простую программу на C сMakefile.Таким образом, эта проблема не выглядит как проблема distutils.

1 Ответ

0 голосов
/ 08 апреля 2011

Если посмотреть на источник distutils и посмотреть, как он выполняет пересборки, он выглядит так, как будто он проверяет временные метки файлов, чтобы определить, устарел ли файл или нет.

Можете ли вы убедиться, что временная метка изменяется, когдаwinscp загружает файл?В противном случае, похоже, что команда build имеет опцию «force», которая вызывает перестройку, несмотря ни на что.

...