Насколько мне известно, он просто удаляет подкаталог build
, куда Python помещает все файлы для установки, включая расширения, которые необходимо скомпилировать.
В других местах не должно быть никаких файлов *.pyc
, если только вы не запустили Python для некоторых скриптов в исходном каталоге (что может произойти, если вы запускаете тесты) или не импортировали модули непосредственно из исходного каталога. *~
файлы являются файлами резервных копий emacs, и поэтому setup.py
их все равно не очистит. (Если вы видели такое поведение из make clean
, то это просто потому, что кто-то закодировал это в Makefile.)
Вероятно, вы могли бы переопределить команду очистки таким образом, чтобы (рекурсивно) удалить файлы *.pyc
, но я сомневаюсь, что в этом есть необходимость. В общем, Python достаточно умен, чтобы перекомпилировать файлы *.py
в файлы *.pyc
, если первые изменились, а в противном случае использование последних будет просто быстрее.
Есть одно предостережение, с которым я столкнулся, и это то, что при выполнении setup.py build_ext --inplace
очистка не удалит скомпилированные модули, поскольку они не находятся в каталоге сборки. Что мне кажется недостатком чистой команды.
В целом, похоже, что команда очистки была добавлена, чтобы соответствовать поведению make
, но, похоже, она мало что добавляет.
person
Community
schedule
23.07.2013
clean
можно использовать для простой очистки рабочего каталога от временных файлов, чтобы четко видеть, что у вас есть. - person Alex   schedule 24.07.2013setup.py sdist
. Что касается очистки:*.pyc
файлов на самом деле не должно быть проблемой, но вы можете рассмотретьfind . -name "*.pyc" | xargs rm
. Эти файлы*~
не должны беспокоить Python, поскольку они не связаны с Python (это может относиться и к нескольким другим типам файлов). - person   schedule 24.07.2013xargs
таким образом опасно. вместо этого используйтеfind -delete
. - person mic_e   schedule 15.10.2014a b
. вместо этого файлыa
иb
будут удалены. Еще хуже: представьте себе файл-rf .
. Вместо этого будет удален весь каталог. Более безопасным способом использованияxargs
будетfind -print0 | xargs -0 rm --
, который будет выполнять правильную задачу в обоих сценариях, ноfind -delete
проще всего. - person mic_e   schedule 16.10.2014