Distributed Control System Platform.
Branch | Status |
---|---|
Master Branch | |
3.x | |
develop |
A few external dependencies are required to bootstrap the development environment:
- Essential build tools (gcc, make, autodev-tools, etc.)
- Python development files (headers)
- Openssl.
On Debian-based systems, these can all be installed with the following command:
$ sudo apt-get install build-essential python-dev openssl libssl-dev libevent-dev
NOTE: If you wish to use cryptographic authentication or point-to-point encryption, libsodium must also be installed. However, libsodium is not currently in the official Ubuntu or Debian repositories, so it must be installed manually or from an unofficial repository, such as https://launchpad.net/~shnatsel/+archive/dnscrypt. The libsodium source code is found at https://github.com/jedisct1/libsodium.
On Arch Linux, the following command will install the dependencies:
$ sudo pacman -S base-devel python2 openssl libssl-dev libsodium
To create a development environment, execute the following in the project root directory:
$ python2.7 bootstrap.py
That's it! You can now start an interpreter that includes Volttron in the
Python path using env/bin/python
or run Volttron using env/bin/volttron
.
The bootstrap script will also create env/bin/activate
which can be sourced
to setup a developer environment with the appropriate paths set.
It also creates a deactivate function to revert the settings.
$ . env/bin/activate
(volttron)$ echo $PATH
... do development work
(volttron)$ deactivate
$ echo $PATH
To update the scripts after modifying setup.py
or after a repository update,
use the following command:
$ env/bin/python bootstrap.py
The bootstrap script creates a virtual Python environment, using virtualenv, and installs Volttron as an editable (or developer mode) package using pip.
To add project dependencies, add the dependent package to the
install_requires
list in setup.py
and run env/bin/python bootstrap.py
.
Add agent or other external dependencies to requirements.txt
.