Meine einfache Lösung (bekam eine Vorstellung von Trac):
#!/usr/bin/env python
from setuptools import setup, find_packages
from setuptools.command.install_lib import install_lib as _install_lib
from distutils.command.build import build as _build
from distutils.cmd import Command
class compile_translations(Command):
description = 'compile message catalogs to MO files via django compilemessages'
user_options = []
def initialize_options(self):
pass
def finalize_options(self):
pass
def run(self):
import os
import sys
from django.core.management.commands.compilemessages import \
compile_messages
curdir = os.getcwd()
os.chdir(os.path.realpath('app_name'))
compile_messages(stderr=sys.stderr)
os.chdir(curdir)
class build(_build):
sub_commands = [('compile_translations', None)] + _build.sub_commands
class install_lib(_install_lib):
def run(self):
self.run_command('compile_translations')
_install_lib.run(self)
setup(name='app',
packages=find_packages(),
include_package_data=True,
setup_requires=['django'],
...
cmdclass={'build': build, 'install_lib': install_lib,
'compile_translations': compile_translations}
)
Dies wird Ihnen helfen po-Dateien zusammenstellen, wenn Sie Ei bauen oder Paket installieren.
Die Frage ist über die Automatisierung dieser Aufgabe –
Setup-Skript ist ein normales 'Python'-Skript, so dass Sie Code aus' Django' darin verwenden können. Betrachten Sie "setup.py" als normales Programm, dessen Ziel es ist, Ihr Paket zu installieren und verschiedene Schritte zu befolgen. Einer von ihnen ruft 'compile_messages' aus' Django' auf. Dadurch wird die Installation des Pakets automatisiert - Sie müssen "django-admin compilemessages" nicht aufrufen, bevor Sie 'setup.py' ausführen. – gruszczy