Multi-platform open-source pipeline built around the Avalon platform, expanding it with extra features and integrations. Pype connects asset database, project management and time tracking into a single modular system. It has tight integration with ftrack, but it can also run independently.
To get all the key information about the project, go to PYPE.club
Pype will run on most typical hardware configurations commonly found in studios around the world. It is installed on artist computer and can take up 3Gb of space depending on number of versions and other dependencies.
For well functioning ftrack event server, we recommend a linux virtual server with Ubuntu or CentosOS. CPU and RAM allocation need differ based on the studio size, but a 2GB of RAM, with a dual core CPU and around 4GB of storage should suffice.
Pype needs running mongodb server with good connectivity as it is heavily used by Pype. Depending on project size and number of artists working connection speed and latency influence performance experienced by artists. If remote working is required, this mongodb server must be accessible from Internet or cloud solution can be used. Reasonable backup plan or high availability options are recommended.
To build Pype you currently need Python 3.7 as we are following vfx platform. Because of some Linux distros comes with newer Python version already, you need to install 3.7 version and make use of it. You can use perhaps pyenv for this on Linux.
You will need Python 3.7 and git. More tools might be needed for installing dependencies (for example for OpenTimelineIO) - mostly development tools like CMake and Visual Studio
git clone --recurse-submodules git@github.com:pypeclub/pype.git
- Run
.\tools\create_env.ps1
to create virtual environment in.\venv
- Run
.\tools\build.ps1
to build pype executables in.\build\
To create distributable Pype versions, run ./tools/create_zip.ps1
- that will
create zip file with name pype-vx.x.x.zip
parsed from current pype repository and
copy it to user data dir, or you can specify --path /path/to/zip
to force it there.
You can then point Igniter - Pype setup tool - to directory containing this zip and it will install it on current computer.
Pype is build using CX_Freeze to freeze itself and all dependencies.
You will need Python 3.7 and git. You'll need also other tools to build some Pype dependencies like CMake and XCode Command Line Tools (or some other build system).
Easy way of installing everything necessary is to use Homebrew:
- Install Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- Install cmake:
brew install cmake
- Install pyenv:
brew install pyenv
echo 'eval "$(pypenv init -)"' >> ~/.zshrc
pyenv init
exec "$SHELL"
PATH=$(pyenv root)/shims:$PATH
- Pull in required Python version 3.7.x
# install Python build dependences
brew install openssl readline sqlite3 xz zlib
# replace with up-to-date 3.7.x version
pyenv install 3.7.9
- Set local Python version
# switch to Pype source directory
pyenv local 3.7.9
- Run
.\tools\create_env.sh
to create virtual environment in.\venv
- Run
.\tools\build.sh
to build Pype executables in.\build\
You will need Python 3.7 and git. You'll also need curl on systems that doesn't have one preinstalled.
To build Python related stuff, you need Python header files installed (python3-dev
on Ubuntu for example).
You'll need also other tools to build some Pype dependencies like CMake. Python 3 should be part of all modern distributions. You can use your package manager to install git and cmake.
Details for Ubuntu
Install git, cmake and curlsudo apt install build-essential checkinstall
sudo apt install git cmake curl
In case you run in error about xcb
when running Pype,
you'll need also additional libraries for Qt5:
sudo apt install qt5-default
Details for Centos
Install git, cmake and curlsudo yum install qit cmake
In case you run in error about xcb
when running Pype,
you'll need also additional libraries for Qt5:
sudo yum install qt5-qtbase-devel
Use pyenv to install Python version for Pype build
You will need bzip2, readline and sqlite3 libraries.
Ubuntu:
sudo apt install libbz2-dev libreadline-dev libsqlite3-dev
- install pyenv
curl https://pyenv.run | bash
# you can add those to ~/.bashrc
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
# reload shell
exec $SHELL
# install Python 3.7.9
pyenv install -v 3.7.9
# change path to pype 3
cd /path/to/pype-3
# set local python version
pyenv local 3.7.9
- Run
.\tools\create_env.sh
to create virtual environment in.\venv
- Run
.\tools\build.sh
to build Pype executables in.\build\
Pype can by executed either from live sources (this repository) or from "frozen code" - executables that can be build using steps described above.
If Pype is executed from live sources, it will use Pype version included in them. If
it is executed from frozen code it will try to find latest Pype version installed locally
on current computer and if it is not found, it will ask for its location. On that location
pype can be either in directories or zip files. Pype will try to find latest version and
install it to user data directory (on Windows to %LOCALAPPDATA%\pypeclub\pype
, on Linux
~/.local/share/pype
and on macOS in ~/Library/Application Support/pype
).
Pype can be run directly from sources by activating virtual environment:
poetry run python start.py tray
This will use current Pype version with sources. You can override this with --use-version=x.x.x
and
then Pype will try to find locally installed specified version (present in user data directory).
You need to build Pype first. This will produce two executables - pype_gui(.exe)
and pype_console(.exe)
.
First one will act as GUI application and will not create console (useful in production environments).
The second one will create console and will write output there - useful for headless application and
debugging purposes. If you need pype version installed, just run ./tools/create_zip(.ps1|.sh)
without
arguments and it will create zip file that pype can use.
Top build API documentation, run .\tools\make_docs(.ps1|.sh)
. It will create html documentation
from current sources in .\docs\build
.
Note that it needs existing virtual environment.
To run tests, execute .\tools\run_tests(.ps1|.sh)
.
Note that it needs existing virtual environment.