ASPN ActiveState Programmer Network  
ActiveState, a division of Sophos
/ Home / Perl / PHP / Python / Tcl / XSLT /
/ Safari / My ASPN /
Cookbooks | Documentation | Mailing Lists | Modules | News Feeds | Products | User Groups
Product Information
    Try

Documentation
    Release Notes
    Install Notes
    Source Code Control

Bug Reports
Support

Mailing Lists
    Subscribe
    komodo-announce
    komodo-discuss

About Komodo
    Remote Debugging
    Komodo and Mozilla
    PyXPCOM
      Configuration
      Tutorial
      Advanced Topics
      Package Architecture
      Credits

Advertise Jobs

Python XPCOM Package

Mozilla CVS Version - Last updated May 2001

This is the readme for the Python interface to XPCOM.

XPCOM is an acronym for "Cross Platform COM".  It has come out of the Mozilla project, which maintains the main XPCOM project pages.  The Python XPCOM package is a set of Python bindings to XPCOM, allowing a Python programmer to both use and implement XPCOM interfaces.  If you don't know what Python is, then none of this probably interests you at all!

Note: This package requires Python 1.6 or later; we recommend using the latest official Python version (currently 2.1).  This package works very well with the latest ActivePython, and does not require any external modules or packages beyond what is provided in the core Python release for each platform.

About the Python XPCOM Package

The Python XPCOM Package was developed by ActiveState Tool Corporation, and came out of their Komodo project.  The Python XPCOM package is released under the Mozilla Public License (MPL)

Known Bugs/Issues

  • No attempt is made to recurse sub-directories of the main "components" directory.  This is because we may decide on some smart scheme for recursion (similar to Python packages), and don't want people to rely on simple recursive searches.
  • No management of the PythonPath is done by the package.  You must arrange for the Python xpcom package to be on your PythonPath.  Significantly, the XPCOM components directory is not on the PythonPath and generally cannot be, as Python will often find other DLLs in this directory and attempt to use them as Python modules.  This means that Python module files will not be found in the components directory, even when referenced by another component - thus, a component can  not import another component source file as a regular module!  It is thought that when we know what to do with sub-directories of the components directory (as described above), some automated PythonPath support will be provided, so Python components and regular Python modules the component depends on can exist in the same directory structure.
  • No unregistration support at all. The main Python Component Loader supports unregistration, but the actual Python objects themselves do not support unregistration. It is unclear if the Component Loader unregistration process needs to manually remove each component it is responsible for.
  • All Python-implemented components unconditionally support weak-references.  There is no way to disable this feature for any or all components.  It is unclear if there is a need to prevent this, but it is documented here just in case!

Release History

Version 0.90 - January 2001

  • First public release.

Version 0.91 - January 2001

  • Fix a seg fault on Linux when PYTHONPATH is not set.
  • Changes to allow building with stand-alone XPCOM.

Version 0.92 - May 2001

Implement interface flattening.  You should (almost) never need to use QueryInterface()!  We are still 100% backwards compatible, so usage of QI still works - just is generally not necessary.



Privacy Policy | Email Opt-out | Feedback | Syndication
© 2006 ActiveState Software Inc. All rights reserved.