Jeff Kowalczyk wrote:
Phillip, thanks for releasing mkzopeapp. I recently got started with a
buildout-enabled zope-3 project by imitating the layout of z3c.formdemo.

How would I use mkzopeapp to create a project.package name like
z3c.formdemo, or is this not generally recommended for application
packages?

Currently mkzopeapp doesn't support the creation of namespaced packages out of the box, but it's really easy to do this manually (see below).

  $ mkzopeapp AcmeSite
  Selected and implied templates:
    mkzopeapp#zope_app  Package that contains a Zope application
Variables:
    egg:      AcmeSite
    package:  acmesite
    project:  AcmeSite
  Creating template zope_app
  Creating directory ./AcmeSite
    Recursing into +package+
      Creating ./AcmeSite/acmesite/
      Copying __init__.py to ./AcmeSite/acmesite/__init__.py
      Copying configure.zcml_tmpl to ./AcmeSite/acmesite/configure.zcml
      Copying develop.ini to ./AcmeSite/acmesite/develop.ini
      Copying main.py_tmpl to ./AcmeSite/acmesite/main.py
      Recursing into var
        Creating ./AcmeSite/acmesite/var/
        Copying README.txt to ./AcmeSite/acmesite/var/README.txt
    Copying setup.py_tmpl to ./AcmeSite/setup.py
  Running /usr/bin/python setup.py egg_info

To convert the 'acmesite' package into a package called 'jeff.acmesite', simply do:

  $ cd AcmeSite
  $ mkdir jeff
  $ mv acmesite jeff

Then create jeff/__init__.py:

  # this is a namespace package
  try:
      import pkg_resources
      pkg_resources.declare_namespace(__name__)
  except ImportError:
      import pkgutil
      __path__ = pkgutil.extend_path(__path__, __name__)

Then edit setup.py and add the following parameter:

      namespace_packages=['jeff'],

Done.


--
http://worldcookery.com -- Professional Zope documentation and training

_______________________________________________
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users

Reply via email to