Насколько я знаю, он просто удаляет подкаталог build
, где Python ставит все файлы для установки, включая расширения, которые необходимо скомпилировать.
Не должно быть никаких файлов *.pyc
в других местах, если только вы не запустили Python на некоторых сценариях в исходном каталоге (что может произойти, если вы запускаете тесты) или импортировали модули непосредственно из исходного каталога. *~
файлы являются резервными файлами emacs и, таким образом, не будут очищены setup.py
в любом случае. (Если вы видели это поведение от make clean
, чем просто потому, что кто-то закодированы, что в Makefile.)
Вы, вероятно, может переопределить чистую команду таким образом, чтобы (рекурсивно) удалить *.pyc
файлы, но я сомневаюсь, что есть нужда. В общем, Python достаточно умен, чтобы перекомпилировать файлы *.py
в файлы *.pyc
, если первые изменились, и в противном случае использование последнего будет просто быстрее.
Существует одна оговорка, с которой я столкнулся, и именно тогда, когда вы делаете setup.py build_ext --inplace
, очистка не удалит скомпилированные модули, так как они не находятся в каталоге сборки. Который мне кажется недостатком чистой команды.
В целом, похоже, что команда clean была добавлена в соответствие с поведением make
, но, похоже, она не добавляет многого.
Из интереса, почему вы хотите дополнительного поведения? Я могу представить, что приятно иметь чистый каталог, но это не то, о чем вам следует беспокоиться в целом. Любая конкретная причина? – Evert
Мне нужно дополнительное поведение, чтобы указать просто каталог, из которого весь контент взят в пакет. Не удаляя сначала временные файлы python, все эти временные файлы будут использоваться в упаковке, нет? Кроме того, команда 'clean' может использоваться, чтобы просто очистить рабочий каталог от временных файлов, чтобы четко видеть, что у вас есть. – Alex
Для упаковки изучите использование 'setup.py sdist'. Что касается очистки: '* .pyc' файлы не должны быть проблемой, но вы можете рассмотреть' find. -name "* .pyc" | xargs rm'. Эти '* ~' файлы не являются чем-то вроде Python, потому что они не связаны с Python (это может произойти и для нескольких других типов файлов). – Evert