Python in PHP

Users Guide

Author: Jon Parise
Date: 2008-09-29
Revision: 1.2


1   Overview

1.1   Requirements

The Python extension has the following system requirements:

  • PHP version 5.2.0 or later
  • PEAR installer version 1.4.3 or later

1.2   Installation

The easiest way to install the Perforce extension is by using the PECL installer:

pecl install python

If you're building from source code, should use the --with-python configuration option. If your copy of the Python hasn't been installed in one of the default locations, you can specify it as a parameter:


More detailed information on installing PECL packages in general can be found in the Installation of PECL Extensions section of the PHP Manual.

1.3   Source Code

This package's source code is hosted the PHP CVS repository. To check out a read-only (anonymous) copy of the source code, start by logging in to the PHP CVS server. The password for the cvsread account is phpfi.

cvs -d login

Then you'll be able to check out the Python's extension's source code:

cvs -d co -d python pecl/python

A number of unit tests are included to help maintain correct and expected behavior. The tests can be run using PECL tool's run-tests command:

pecl run-tests -p python

Additional unit test contributions are welcome, especially when they increase code coverage or exercise specific use cases.

2   Usage

2.1   INI Settings

2.1.1   python.optimize

The python.optimize INI setting controls the Python interpreter's runtime optimization level. This is a global, system-wide setting and therefore can only be set in the PHP.ini file.

When set to 0 (the default), no additional optimizations are enabled, and the built-in __debug__ flag is True.

When set to 1 (equivalent to Python's -O command line option), the Python interpreter will generate optimized bytecode, and the built-in __debug__ flag is set to False.

When set to 2 (equivalent to Python's -OO command line option), the Python doc-strings will be removed in addition to the above optimizations.

3   Development and Support

3.1   Reporting Problems and Suggestions

If you run into a problem or would like to make a suggestion, please use the PECL Bug Tracker. Feel free to contact me directly for other issues, but please try to use the bug tracker whenever possible so that others in the community will benefit from your feedback and my responses.

3.2   Coming Soon

This section contains a list of "todo" items that will hopefully be addressed in future releases.

  • No items at this time.

If you have feature suggestions, please submit them using the PECL Bug Tracker.