Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Pyblish by Example

Welcome to the Pyblish by Example tutorial.

You will learn

  • The basics of publishing in the production of film and games
  • The fundamentals of Pyblish and it's API
  • How to validate content
  • How to guarantee valid content on export
  • How to properly position and name content according to convention
  • How to visualise the results of one or more publishes
  • Developer and Artist communication through the UI


Pyblish is an open source, cross-platform framework for test-driven content creation.

Pyblish by Example is a hands-on introduction to Pyblish using short example programs written like a book - to be read from top to bottom.


If you haven't already, go ahead and install Pyblish.

$ pip install pyblish-base

Any problems, have a look at the extended installation guide.

How to use this guide

Start by confirming to yourself that you are indeed using version 1.4+ of Pyblish.

>>> import pyblish
>>> pyblish.__version__

If not, see the top-left corner of this page for a dropdown of your version.

As you read through this guide it is recommended that you use the scripting API, accessible via pyblish.util.

from pyblish import util

Reporting issues

Should you happen to find errors or would like to contribute material to this guide, you can:

  1. Click on the + button to the right of each paragraph to add a comment
  2. Register on GitBook to edit this book directly.
  3. Fork the GitHub repository and submit a pull-request with your changes.


Have a look to the left for a table of contents, and below for related topics in the forums.

Note: The below content was written at various versions of Pyblish and may not include current best practices, but all remain forwards compatible with version 1.4.

For example, .set_data("key", "value") has been superseded by .data["key"] = "value" but will still work with newer plug-ins.




  • 2015-08-06 16:27 - Added Quickstart
  • 2015-08-07 10:12 - Added Architecture
  • 2015-08-07 10:14 - Updated Quickstart
  • 2015-08-07 19:17 - Added Good to know about Pyblish
  • 2015-08-07 20:41 - Updated Architecture
  • 2015-08-07 20:48 - Updated This
  • 2015-08-09 10:51 - Updated Validating II with flow chart
  • 2015-08-09 17:24 - Updated This, with installation instructions
  • 2015-08-10 09:00 - Updated This
  • 2015-08-11 07:28 - Updated Quickstart
  • 2015-08-11 07:30 - Updated Files with comma-separated paths
  • 2015-08-11 07:40 - Fixed typo in Report IV
  • 2015-08-13 21:08 - Updated Report I-IV
  • 2015-08-14 09:26 - Updated Report I-II
  • 2015-08-18 07:02 - Added host attribute in-depth
  • 2015-08-18 07:22 - Added "You will learn" to This
  • 2015-10-19 14:38 - Updated use of "Asset" to "Instance"
  • 2015-11-19 09:07 - Updated to pure-dict
  • 2015-12-20 21:56 - Updated image of Context + Instance.
  • 2016-01-21 17:46 - Transitioned to GitBooks, removed section about custom test and services.
  • 2016-06-07 09:48 - Defer use of GUI from guide.
  • 2016-07-01 14:54 - Link to installation guide on Forum
  • 2016-08-03 10:40 - Add intermediate and advanced links
  • 2017-08-12 10:30 - Removed deprecated dependency injection link


A hands-on introduction to Pyblish using short example programs.







No releases published


No packages published