Как делает один пакет приложение Python, которое включает схему gsettings с setuptools?

Я пытаюсь использовать setuptools упаковывать приложение Python, которое полагается на gsettings для того, чтобы сохранить и получить предпочтения пользователя. Однако я не использовал, сказал, что инструмент прежде и я не уверен в том, что сделать с setup.py сценарий, чтобы дать этому команду устанавливать и компилировать схему.

4
задан 23 June 2016 в 14:36

2 ответа

  1. Добавляют, что Ваша схема к setup.py

    setup(...,
          data_files=[('/usr/share/glib-2.0/schemas', ['filename.schema.xml'])]
         )
    
  2. Добавляет системный вызов в setup.py для выполнения:

    glib-compile-schemas /usr/share/glib-2.0/schemas
    
1
ответ дан 1 December 2019 в 10:18

Можно работать glib-copmile-schemas в пользовательском install_data подкласс в setup.py. Например, это - то, как мы делаем это в fluxgui's setup.py :

from distutils.core import setup
from distutils.log import info
import distutils.command.install_data, os.path

# On Ubuntu 18.04 both '/usr/local/share/glib-2.0/schemas' (global
# install) and '~/.local/share/glib-2.0/schemas' (local '--user'
# install) are on the default search path for glib schemas. The global
# search paths are in '$XDG_DATA_DIRS'.
gschema_dir_suffix = 'share/glib-2.0/schemas'

data_files = [<other data files>,
    (gschema_dir_suffix, ['apps.fluxgui.gschema.xml'])]

class install_data(distutils.command.install_data.install_data):
    def run(self):
        # Python 3 'super' call.
        super().run()

        # Compile '*.gschema.xml' to update or create 'gschemas.compiled'.
        info("compiling gsettings schemas")
        # Use 'self.install_dir' to build the path, so that it works
        # for both global and local '--user' installs.
        gschema_dir = os.path.join(self.install_dir, gschema_dir_suffix)
        self.spawn(["glib-compile-schemas", gschema_dir])

setup(<other setup args>,
    cmdclass = {'install_data': install_data})
1
ответ дан 1 December 2019 в 10:18

Другие вопросы по тегам:

Похожие вопросы: