Я хочу создать дистрибутив только по байт-коду из distutils (на самом деле, нет, я знаю, что я делаю ). Используя setuptools и команду bdist_egg, вы можете просто указать параметр --exclude-source. К сожалению, стандартные команды не имеют такой опции.
Команда distutils "build_py" - та, которая имеет значение, поскольку она (косвенно) повторно используется всеми командами, создающими дистрибутивы. Если вы переопределите метод byte_compile(files), то получится что-то вроде:
try:
from setuptools.command.build_py import build_py
except ImportError:
from distutils.command.build_py import build_py
class build_py(build_py)
def byte_compile(self, files):
super(build_py, self).byte_compile(files)
for file in files:
if file.endswith('.py'):
os.unlink(file)
setup(
...
cmdclass = dict(build_py=build_py),
...
)
Вы должны быть в состоянии сделать так, чтобы исходные файлы удалялись из дерева сборки до того, как они будут скопированы в каталог "install" (который является временным каталогом при вызове команд bdist).
Примечание: я не тестировал этот код; YMMV.