Hello,

As my first Mac OS X project I am trying to build a sample plugin with py2app. 
I am following this tutorial: 

http://eaganj.free.fr/weblog/?post/2009/07/14/Demystifying-Mail.app-Plugins-on-Leopard

I do not know what am I doing wrong, but I cannot seem to be able to create my 
plugin in the first place. 

python setup.py py2app -A works, but creating a standalong plugin fails. 

Do you know what is wrong? First I tried with py2app 0.4.3, but now I use svn 
trunk.

python setup.py py2app output:
running py2app
*** using recipe: virtualenv ***
*** filtering dependencies ***
369 total
366 filtered
0 orphaned
3 remaining
*** create binaries ***
*** byte compile python files ***
skipping byte-compilation of /Users/ata/Projects/MailArchiveButton/MyPlugin.py 
to MyPlugin.pyc
byte-compiling /Users/ata/Scrap/py2app/py2app/bootstrap/boot_plugin.py to 
boot_plugin.pyc
byte-compiling /Users/ata/Scrap/py2app/py2app/bootstrap/disable_linecache.py to 
disable_linecache.pyc
*** creating plugin bundle: MyPlugin ***
copying MyPlugin.py -> 
/Users/ata/Projects/MailArchiveButton/dist/MyPlugin.mailbundle/Contents/Resources
creating 
/Users/ata/Projects/MailArchiveButton/dist/MyPlugin.mailbundle/Contents/Resources/lib
creating 
/Users/ata/Projects/MailArchiveButton/dist/MyPlugin.mailbundle/Contents/Resources/lib/python2.6
copying 
build/bdist.macosx-10.6-universal/python2.6-semi_standalone/app/site-packages.zip
 -> 
/Users/ata/Projects/MailArchiveButton/dist/MyPlugin.mailbundle/Contents/Resources/lib/python2.6
creating 
/Users/ata/Projects/MailArchiveButton/dist/MyPlugin.mailbundle/Contents/Resources/lib/python2.6/lib-dynload
creating 
/Users/ata/Projects/MailArchiveButton/dist/MyPlugin.mailbundle/Contents/Frameworks
Traceback (most recent call last):
  File "/Users/ata/Scrap/py2app/py2app/build_app.py", line 589, in _run
    self.run_normal()
  File "/Users/ata/Scrap/py2app/py2app/build_app.py", line 660, in run_normal
    self.create_binaries(py_files, pkgdirs, extensions, loader_files)
  File "/Users/ata/Scrap/py2app/py2app/build_app.py", line 777, in 
create_binaries
    platfiles = mm.run()
  File "build/bdist.macosx-10.6-universal/egg/macholib/MachOStandalone.py", 
line 101, in run
    for fn in platfiles:
  File "build/bdist.macosx-10.6-universal/egg/macholib/util.py", line 227, in 
iter_platform_files
    if is_platform_file(fn):
  File "build/bdist.macosx-10.6-universal/egg/macholib/util.py", line 206, in 
is_platform_file
    header = mach_o.fat_header.from_fileobj(fileobj, _endian_='>')
  File "build/bdist.macosx-10.6-universal/egg/macholib/ptypes.py", line 44, in 
from_fileobj
    return cls.from_str(f.read(cls._size_), **kw)
  File "build/bdist.macosx-10.6-universal/egg/macholib/ptypes.py", line 48, in 
from_str
    return cls.from_tuple(struct.unpack(endian + cls._format_, s), **kw)
error: unpack requires a string argument of length 8
> /Users/ata/Projects/MailArchiveButton/build/bdist.macosx-10.6-universal/egg/macholib/ptypes.py(48)from_str()
(Pdb) ^D


setup.py:
from distutils.core import setup
import py2app

plist = dict(
        NSPrincipalClass='MyPlugin',
        CFBundleVersion='1',
        SupportedPluginCompatibilityUUIDs=[
                '225E0A48-2CDB-44A6-8D99-A9BB8AF6BA04',
                'B3F3FC72-315D-4323-BE85-7AB76090224D',
                '2610F061-32C6-4C6B-B90A-7A3102F9B9C8',
                '99BB3782-6C16-4C6F-B910-25ED1C1CB38B',
                '2F0CF6F9-35BA-4812-9CB2-155C0FDB9B0F',
                '0CB5F2A0-A173-4809-86E3-9317261F1745'
            ]
    )
setup(
    plugin = ['MyPlugin.py'],
    options=dict(py2app=dict(extension='.mailbundle', plist=plist))
 )


myplugin.py:
from AppKit import *
from Foundation import *
import objc

MVMailBundle = objc.lookUpClass('MVMailBundle')
class MyPlugin(MVMailBundle):
    @classmethod
    def initialize (cls):
        cls.registerBundle()
        NSLog("MyPlugin registered with Mail")
    initialize = classmethod(initialize)




-- Attila

_______________________________________________
Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig

Reply via email to