X-Git-Url: http://git.inspyration.org/?a=blobdiff_plain;f=setup.py;h=28badaff8f87f1349b47e33f8b8989ed8ef486e5;hb=a73b932d4a82142529356420af093b91a7353cb5;hp=4aed74aff204efb96e43550d0c71fccaa3d60054;hpb=e704185e4558708b81dd206c52a6279b5d623264;p=odoo%2Fodoo.git diff --git a/setup.py b/setup.py index 4aed74a..28badaf 100755 --- a/setup.py +++ b/setup.py @@ -46,6 +46,23 @@ if os.name == 'nt': { "script": join("bin", "openerp-server.py"), "icon_resources": [(1, join("pixmaps","openerp-icon.ico"))] }] + py2exe_keywords['options'] = { + "py2exe": { + "compressed": 1, + "optimize": 2, + "dist_dir": 'dist', + "packages": [ + "lxml", "lxml.builder", "lxml._elementpath", "lxml.etree", + "lxml.objectify", "decimal", "xml", "xml", "xml.dom", "xml.xpath", + "encodings", "dateutil", "wizard", "pychart", "PIL", "pyparsing", + "pydot", "asyncore","asynchat", "reportlab", "vobject", + "HTMLParser", "select", "mako", "poplib", + "imaplib", "smtplib", "email", "yaml", "DAV", + "uuid", "commands", + ], + "excludes" : ["Tkconstants","Tkinter","tcl"], + } + } sys.path.append(join(os.path.abspath(os.path.dirname(__file__)), "bin")) @@ -186,23 +203,6 @@ class openerp_server_install(install): -options = { - "py2exe": { - "compressed": 1, - "optimize": 2, - "dist_dir": 'dist', - "packages": [ - "lxml", "lxml.builder", "lxml._elementpath", "lxml.etree", - "lxml.objectify", "decimal", "xml", "xml", "xml.dom", "xml.xpath", - "encodings", "dateutil", "wizard", "pychart", "PIL", "pyparsing", - "pydot", "asyncore","asynchat", "reportlab", "vobject", - "HTMLParser", "select", "mako", "poplib", - "imaplib", "smtplib", "email", "yaml", "DAV", - "uuid", "commands", - ], - "excludes" : ["Tkconstants","Tkinter","tcl"], - } -} setup(name = name, version = version, @@ -227,7 +227,6 @@ setup(name = name, '': ['*.yml', '*.xml', '*.po', '*.pot', '*.csv'], }, package_dir = find_package_dirs(), - options = options, install_requires = [ 'lxml', 'mako', @@ -248,3 +247,31 @@ setup(name = name, **py2exe_keywords ) +if has_py2exe: + # Sometime between pytz-2008a and pytz-2008i common_timezones started to + # include only names of zones with a corresponding data file in zoneinfo. + # pytz installs the zoneinfo directory tree in the same directory + # as the pytz/__init__.py file. These data files are loaded using + # pkg_resources.resource_stream. py2exe does not copy this to library.zip so + # resource_stream can't find the files and common_timezones is empty when + # read in the py2exe executable. + # This manually copies zoneinfo into the zip. See also + # http://code.google.com/p/googletransitdatafeed/issues/detail?id=121 + import pytz + import zipfile + # Make sure the layout of pytz hasn't changed + assert (pytz.__file__.endswith('__init__.pyc') or + pytz.__file__.endswith('__init__.py')), pytz.__file__ + zoneinfo_dir = os.path.join(os.path.dirname(pytz.__file__), 'zoneinfo') + # '..\\Lib\\pytz\\__init__.py' -> '..\\Lib' + disk_basedir = os.path.dirname(os.path.dirname(pytz.__file__)) + zipfile_path = os.path.join(py2exe_keywords['options']['py2exe']['dist_dir'], 'library.zip') + z = zipfile.ZipFile(zipfile_path, 'a') + + for absdir, directories, filenames in os.walk(zoneinfo_dir): + assert absdir.startswith(disk_basedir), (absdir, disk_basedir) + zip_dir = absdir[len(disk_basedir):] + for f in filenames: + z.write(os.path.join(absdir, f), os.path.join(zip_dir, f)) + + z.close()