Frage

Wie kann ich sicher setup.py compiles Projekte PO-Dateien und schließen sie zu machen, wenn ein sdist erstellt wird. Dies ist eine Django-Applikation und manueller Prozess zu MO-Dateien zu erzeugen, ist folgender Befehl in der App-Root-Verzeichnis ausgeführt werden:

django-admin compilemessages

(dies bedeutet, geht eine Ebene tiefer als setup.py)

Ich möchte manuell vermeiden Kompilieren MO jedes Mal Dateien. Und ich will mich nicht in dem Repository überhaupt speichern.

War es hilfreich?

Lösung

from django.core.management.commands.compilemessages import compile_messages

und verwenden Sie es in Ihrem setup.py Skript, bevor Sie setup laufen und dann schließen erstellten Dateien in setup Methode.

Andere Tipps

Meine einfache Lösung (bekommt 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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top