Edit me on GitHub

Substance D


Substance D is an application server built using the Pyramid web framework. It can be used as a base to build a general-purpose web application like a blog, a shopping cart application, a scheduling application, or any other web app that requires both an administration and a retail interface.

Substance D owes much of its spirit to the Zope application server.

It requires Python 2.6, 2.7, 3.2, 3.3, or 3.4.


Install using setuptools, e.g. (within a virtualenv):

$ easy_install substanced


During Substance D's pre-alpha period, it may be necessary to use a checkout of Substance D as well as checkouts of the most recent versions of the libraries upon which Substance D depends.

Optional Dependencies

Use of the substanced.file.USE_MAGIC constant for guessing file types from stream content requires the python-magic library, which works without extra help on Linux systems, but requires special dependency installations on Mac OS and Windows systems. You'll need to follow these steps on those platforms to use this feature:

Mac OS X


"Installation on Win32" in

Demonstration Application

See the application running at for a demonstration of the Substance D management interface.

To deploy the demo locally, run pcreate -s substanced myproj after installing Substance D. That creates a myproj directory and installs the substanced scaffold in it. To run it, change into mpyproj and execute pserve development.ini. The development server listens to requests sent to by default. The initial password for the admin user is generated randomly. Use something like grep initial_password *.ini in myproj directory to see the password. Output should looks like:

$ grep initial_password *.ini
development.ini:substanced.initial_password = 4vGhUPuDCr
production.ini:substanced.initial_password = 4vGhUPuDCr

Support / Reporting Bugs / Development Versions

Visit to download development or tagged versions.

Visit to report bugs.

The mailing list exists at

The IRC channel is at irc://