Simen Haugen wrote:
> I really don't get it..
> I tried to add it to the data_files section, but all that does is copy
> the files.
>
> How should the files be added? With other_resources as something like
> this..?
>
> other_resources = [
> ("dabo/locale/dabo.pot", 1, <read dabo.pot here>),
> ("dabo/locale/en/LC_MESSAGES/dabo.mo", 1, <read dabo.mo here>),
> ]
I've been meaning to add the needed locale bits to the
AppWizard-generated setup.py. In the meantime, here's what I'm doing for
my app (do a search for 'locale' and you'll see what you need to do):
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
# ModuleFinder can't handle runtime changes to __path__, but win32com
uses them
try:
import py2exe.mf as modulefinder
import win32com
for p in win32com.__path__[1:]:
modulefinder.AddPackagePath("win32com", p)
for extra in ["win32com.shell"]: #,"win32com.mapi"
__import__(extra)
m = sys.modules[extra]
for p in m.__path__[1:]:
modulefinder.AddPackagePath(extra, p)
except ImportError:
# no build path setup, no worries.
pass
import os
import glob
from distutils.core import setup
import py2exe
import dabo.icons
from App import App
daboDir = os.path.split(dabo.__file__)[0]
# Find the location of the dabo icons:
iconDir = os.path.split(dabo.icons.__file__)[0]
iconSubDirs = []
def getIconSubDir(arg, dirname, fnames):
if ".svn" not in dirname and "cards" not in dirname.lower() and
dirname[-1] != "\\":
icons = glob.glob(os.path.join(dirname, "*.png"))
if icons:
subdir = (os.path.join("resources",
dirname[len(arg)+1:]), icons)
iconSubDirs.append(subdir)
os.path.walk(iconDir, getIconSubDir, iconDir)
# locales:
localeDir = "%s%slocale" % (daboDir, os.sep)
#locales = [("dabo.locale", (os.path.join(daboDir, "locale", "dabo.pot"),))]
locales = []
def getLocales(arg, dirname, fnames):
if ".svn" not in dirname and dirname[-1] != "\\":
#po_files = tuple(glob.glob(os.path.join(dirname, "*.po")))
mo_files = tuple(glob.glob(os.path.join(dirname, "*.mo")))
if mo_files:
subdir = os.path.join("dabo.locale",
dirname[len(arg)+1:])
locales.append((subdir, mo_files))
os.path.walk(localeDir, getLocales, localeDir)
# The applications App object contains all the meta info:
app = App(MainFormClass=None)
_appName = app.getAppInfo("appName")
_appShortName = app.getAppInfo("appShortName")
_appFileStem = _appShortName.lower().replace(" ", "_")
_appVersion = app.getAppInfo("appVersion")
_appDescription = app.getAppInfo("appDescription")
_copyright = app.getAppInfo("copyright")
_authorName = app.getAppInfo("authorName")
_authorEmail = app.getAppInfo("authorEmail")
_authorURL = app.getAppInfo("authorURL")
_authorPhone = app.getAppInfo("authorPhone")
_appComments = ("This is custom software by %s.\r\n"
"\r\n"
"%s\r\n"
"%s\r\n"
"%s\r\n") % (_authorName, _authorEmail, _authorURL,
_authorPhone)
_appIcon = "./resources/icon_green.ico"
_script = "shutter_studio.py"
manifest = open("shutter_studio.exe.manifest").read()
class Target:
def __init__(self, **kw):
self.__dict__.update(kw)
# for the versioninfo resources
self.version = _appVersion
self.company_name = _authorName
self.copyright = _copyright
self.name = _appName
self.description = _appDescription
self.comments = _appComments
self.script=_script
self.other_resources = [(24, 1, manifest)]
if _appIcon is not None:
self.icon_resources = [(1, _appIcon)]
data_files=[("db/sqlite", glob.glob("db/sqlite/*.sql")),
("resources", glob.glob(os.path.join(iconDir, "*.ico"))),
("resources", glob.glob("resources/*")),
("reports", glob.glob("reports/*"))]
data_files.extend(iconSubDirs)
data_files.extend(locales)
setup(name=_appName,
version=_appVersion,
description=_appDescription,
author=_authorName,
author_email=_authorEmail,
url=_authorURL,
options={"py2exe": {"packages": ["encodings", "wx",
"ui", "biz", "db"],
"optimize": 2, #"compressed": 1,
"excludes": ["matplotlib",
"Tkconstants","Tkinter","tcl",
"_imagingtk",
"PIL._imagingtk",
"ImageTk",
"PIL.ImageTk", "FixTk",],
'typelibs' :
[('{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}', 0, 1, 1)],}},
zipfile=None,
windows=[Target()],
data_files=data_files
)
# Write out the setup.iss file for inno:
iss = open("setup.iss.txt").read() % locals()
open("setup.iss", "wb").write(iss)
--
pkm ~ http://paulmcnett.com
_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-users
Searchable Archives: http://leafe.com/archives/search/dabo-users
This message: http://leafe.com/archives/byMID/dabo-users/[EMAIL PROTECTED]