-
Пытаюсь оформить своё приложение в виде пакета для Debian Lenny.
Для этого сначала делаю python пакет с помощью distutils. Прочитал документацию к нему.
Сделал MANIFEST.in:
include README include LICENSE include AUTHORS include INSTALL recursive-include src/qtrmanager/locale *.mo recursive-include src/qtrmanager *.cssСделал python setup.py sdist. В пакет входит всё, что мне необходимо.
Затем делаю тестовую установку - python setup.py install --prefix=/tmp
running install running build running build_py creating build creating build/lib creating build/lib/qtrmanager copying src/qtrmanager/dlg_event_info.py -> build/lib/qtrmanager copying src/qtrmanager/dlg_event_assign.py -> build/lib/qtrmanager .. copying src/qtrmanager/dlg_waiting_rfid.py -> build/lib/qtrmanager creating build/lib/qtrmanager/locale error: can't copy 'src/qtrmanager/locale/ru': doesn't exist or not a regular fileФайл в наличии, как видим:
-rw-r--r-- 1 rad rad 8906 2010-01-13 10:07 locale/ru/LC_MESSAGES/project.moПодскажите, что я упустил?
-
Файл в наличии, как видим:
Подождите. Видно что
src/qtrmanager/locale/ruне файл а каталог, что соответствует сообщению:doesn't exist or not a regular file
Поскольку манифест используется только для создания архива, то он тут не интересен, а интересно что у вас написано в setup.py. Вот его и покажите.
-
Вот мой setup.py:
# -*- coding: utf-8 -*-
from distutils.core import setup
setup(name='pyqounter-manager',
version='1.0.0',
description='Accounting System / Manager',
author='Ruslan Popov',
author_email='ruslan.popov@gmail.com',
maintainer='Ruslan Popov',
maintainer_email='ruslan.popov@gmail.com',
url='http://snegiri.dontexist.org/pyqounter',
packages=['qtrmanager'],
package_dir={'qtrmanager': 'src/qtrmanager'},
package_data={'qtrmanager': ['locale/*', 'manager.css']}
) -
Осознал!
Надо был писать:package_data={'qtrmanager': ['locale/ru/LC_MESSAGES/*mo', 'manager.css']} -
Подскажите, пожалуйста, как надо описывать файл с ресурсами i18n (я про project.mo), чтобы он ставился в правильное место?
Сейчас он ставится вместе с приложением в /lib/python2.5/site-packages/qtrmanager/locale/ru/LC_MESSAGES/. Я разрабатываю PyQt приложение и подключаю файл с переводами следующим кодом в начале каждого скрипта:
import gettext gettext.bindtextdomain('project', './locale/') gettext.textdomain('project') _ = lambda a: unicode(gettext.gettext(a), 'utf8')Стандартные средства PyQt для организации перевода приложения я не смог заставить работать.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
