Source

pyobjc / Install.txt

=========================
Installation Instructions
=========================

.. :authors: Bill Bumgarner, Ronald Oussoren
 
Building the package
====================

If you're using the sources from CVS you should first download a copy of 
libffi from `the PyObjC download site`_.  Extract this in a convenient location
and update the variable ``LIBFF_SOURCES`` at the top of setup.py.  The released
version of PyObjC includes a compatible version of libffi.

.. _`the PyObjC download site`: http://sourceforge.net/project/showfiles.php?group_id=14534

PyObjC is build and installed using the distutils package included with Python
2.0 and beyond.  This package provides a single interface for building and
packaging the module.   To see usage documentation for the module,
issue the ``--help`` command::

  % python setup.py --help

To see an inventory of building and packaging commands, issue the
command::

  % python setup.py --help-commands

The following command will build and install the pyobjc module::

  % python setup.py install

The setup.py system can also be used to create source and binary
distribution archives automatically.

Use ``sudo`` to install the pyobjc module into a the Apple supplied
python's site-packages directory on OS X 10.2 and greater:

% sudo python setup.py install

If you have multiple versions of python installed on your system, the
above will only install pyobjc for whatever version of python is the
default on the command line.   Make sure you are installing python
against the correct version of python.

To be able to build the wrappers for the WebKit framework (included with
Safari 1.0), you'll have to install the WebKit SDK. You can download 
this from the `ADC website <http://connect.apple.com>`_.

PyObjC has limited support for `GNUstep`_. See `Doc/gnustep.txt`_ for 
more information.

.. _GNUStep: http://www.gnustep.org/

.. _`Doc/gnustep.txt`: Doc/gnustep.html

Examples
========

The `examples directory`_ contains a number of projects that demonstrate
various features of the PyObjC bridge. The scripts at the top level of
the `examples directory`_ were mostly written to test a particular
feature of the bridge (or document a bug until a fix could be found).

.. _`examples directory`: Examples/00ReadMe.html

CurrencyConverter and TableModel are both examples of standalone
Cocoa-Python applications.  To build and execute::

  % cd TableModel
  % python buildapp.py build

The WebServicesTool is an example of Cocoa-Python applications created via 
the Cocoa-Python project template found in the 
``ProjectBuilder Extras/Project Templates`` directory.  Use Project Builder 
to build the applications.


Project Templates
=================

Xcode on MacOS X 10.3
.....................

The ``Xcode`` directory contains some file and project that make it easier to
work with Python and PyObjC when using `Xcode`__.

.. __:http://www.apple.com/xcode

Copy the templates in ``Xcode/File templates`` to ``/Library/Application Support/Apple/Development Tools/File Templates``. Copy the templates in ``Xcode/Project Templates`` to ``/Library/Application Support/Apple/Development Tools/Project Templates``.

There are two project templates:

* Cocoa-Python Application

  A project created from this template is designed to implement standalone,
  pure-Python, applications that are compatible with Apple's build of Python as
  well as all other builds of python that support PyObjC.

  When building the 'install' target, the resulting application wrapper will
  included the PyObjC module and can be launched on any stock OS X 10.3 system
  without requiring PyObjC to be preinstalled.

* Cocoa-Python Document-based Application

  This template works like the Cocoa-Python Application template in that it
  is compatible with the Apple build of Python.   It creates an application 
  that uses Cocoa's Multiple Document Architecture in the same fashion as the
  default Cocoa Document-based Application supplied with Project Builder. 


Project Builder on MacOS X 10.2
...............................

The ``ProjectBuilder Extras`` directory contains additional files that can
be used with Project Builder. The directory ``Specifications`` contains files
that enable syntax coloring for Python files in Project Builder.

The ``Project Templates`` directory contains project templates for
Project Builder.  These have to be copied to
``/Developer/ProjectBuilder Extras/Project Templates/Application`` before
they are useable from Project Builder.

There are three templates available:

* Cocoa-Python Application

  A project created from this template is designed to implement standalone,
  pure-Python, applications that are compatible with Apple's build of Python as
  well as all other builds of python that support PyObjC.

  When building the 'install' target, the resulting application wrapper will
  included the PyObjC module and can be launched on any stock OS X 10.2 system
  without requiring PyObjC to be preinstalled.

* Cocoa-Python-ObjC Application
 
  A project created from this template includes an embedded framework project
  into which all compiled (Objective-C) code can be placed.  Upon launch, 
  the application automatically dynamically loads the embedded framework 
  containing the compiled code.

  Each Framework's Resources directory is automatically added to sys.path.

* Cocoa-Python Document-based Application

  This template works like the Cocoa-Python Application template in that it
  is compatible with the Apple build of Python.   It creates an application 
  that uses Cocoa's Multiple Document Architecture in the same fashion as the
  default Cocoa Document-based Application supplied with Project Builder. 

More information on project templates can be found in the Project
Builder documentation and/or release notes.
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.