VTK/PythonDevelopment

From KitwarePublic
< VTK
Jump to navigationJump to search

VTK Eclipse/Pydev

Eclipse with Pydev provides a good development environment for developing Python scripts for VTK. You get Syntax checking/highlighting and code completion and debugging. However in order to integrate VTK we need to do a few extra steps.

This article will show you how to set up the development environment for Windows, Linux and MacOSX.

The folowing discussion assumes that the environment variables have been set and that the user is familiar with or willing to learn the Eclipse IDE.

Environment variables for Linux/MacOS

The environment variables are assuming the following directory structure, so you may need to change paths in the environment variables to suit your own directory structure.

%KITWARE_PATH%\build\VTK
%KITWARE_PATH%\src\VTK
%KITWARE_PATH%\src\VTKData
%KITWARE_PATH%\src\VTKLargeData

Note: You must set KITWARE_PATH to the root path of your VTK build, for example '/home/username/Code/Kitware'.


Edit ~/.bashrc and add in the following lines. <source lang="bash">

  1. Kitware

export KITWARE_PATH=/home/username/Code/Kitware

  1. VTK

export VTK_DATA_ROOT=$KITWARE_PATH/src/VTKData export VTK_LARGE_DATA_ROOT=$KITWARE_PATH/src/VTKLargeData export VTK_ROOT=$KITWARE_PATH/src/VTK

export VTK_DIR=$KITWARE_PATH/build/VTK

  1. For VTK TCL programs.

export TCLLIBPATH='$VTK_DIR/Wrapping/Tcl' alias vtk='$VTK_DIR/bin/vtk'

  1. For VTK Python programs.

alias vtkpython='$VTK_DIR/bin/vtkpython'

  1. NOTE: Change python2.7 to match the Python version used.

VTKPYTHONPATH=$VTK_DIR/lib/python2.7/site-packages

  1. NOTE: For VTK 8.1 and earlier, VTKPYTHONPATH should be set to the following instead
  2. VTKPYTHONPATH=$VTK_DIR/Wrapping/Python:$VTK_DIR/lib

export PYTHONPATH=$PYTHONPATH:$VTKPYTHONPATH </source> Then do: <source lang="bash"> source ~/.bashrc </source>

Environment variables for Windows

The environment variables are assuming the following directory structure, so you may need to change paths in the environment variables to suit your own directory structure.

%KITWARE_PATH%\build\VTK\Release
%KITWARE_PATH%\build\VTK\Debug
%KITWARE_PATH%\src\VTK
%KITWARE_PATH%\src\VTKData
%KITWARE_PATH%\src\VTKLargeData

Set the following environment variables:

KITWARE_PATH This will be the root path e.g C:\Kitware or C:\Users\<your username>\Code\Kitware you can choose whatever you prefer here
VTK_BIN %KITWARE_PATH%\build\VTK\Release\bin
VTK_DATA_ROOT %KITWARE_PATH%\src\VTKData
VTK_LARGE_DATA_ROOT %KITWARE_PATH%\src\VTKLargeData
VTK_ROOT %KITWARE_PATH%\src\VTK
PYTHONPATH %VTK_BIN%\Lib\site-packages (or for VTK 8.1 and older: %KITWARE_PATH%\build\VTK\Release\Wrapping\Python)
TCLLIBPATH <root_path>/build/VTK/Release/Wrapping/Tcl/Release


Note that for TCLLIBPATH the path must be fully expanded and \ replaced by /. Replace <root_path> with whatever you used for KITWARE_PATH replacing \ with / e.g C:/Kitware.

You will need to add the following path to the PATH environment variable:

%KITWARE_PATH%\build\VTK\Release\bin\Release

In Windows these are set by going to Control Panel|All Control Panel Items|System and selecting "Advanced System Settings". Then select the Advanced tab and click on Environment Variables.

Setting up Eclipse and Pydev

You must have Java installed, either JRE or JDK, download and install from http://www.java.com.

Download Eclipse Classic from http://www.eclipse.org/downloads/

Unzip it and place the eclipse folder in a suitable place.

Additional steps for Linux

Go to the eclipse folder.

Check eclipse.ini and make sure that, if you have manually installed Java, the openfile section looks something like this: <source lang="bash"> openfile -vm /usr/local/jdk/jdk1.7.0_03/bin/java </source> Of course replace /usr/local/jdk/jdk1.7.0_03/bin/java with the path to the java version you installed.

Create a script, called eclipse.sh, with the following content: <source lang="bash">

  1. !/bin/bash
  2. Start eclipse with some environment variables set.

export KITWARE_PATH=/home/username/Code/Kitware export VTK_TEXTBOOK_DATA=$KITWARE_PATH/src/VTKTextbook/Data export VTK_DATA_ROOT=$KITWARE_PATH/src/VTKData export VTK_LARGE_DATA_ROOT=$KITWARE_PATH/src/VTKLargeData

<path_to_eclipse>/eclipse </source> Remember to change KITWARE_PATH to the root path of your VTK build, for example '/home/username/Code/Kitware' and to change <path_to_eclipse> to the path to the path to the eclipse folder. Both these paths must be absolute paths.

Save and mark this as executable.

The purppose of this script is to set the VTK environment variables so that we can run the Python scripts within Pydev.

Now create a file called eclipse.desktop with this content: <source lang="ini"> [Desktop Entry] Type=Application Encoding=UTF-8 Name=Eclipse Comment=The Eclipse Development Environment Exec=<path_to_eclipse>/eclipse.sh Icon=<path_to_eclipse>/icon.xpm Terminal=false </source> Once again, change <path_to_eclipse> to point to your eclipse directory, then save the file. It will appear as a file called Eclipse and will have the eclipse logo. Now right-click on the file and mark it as executable.

Thw purpose of this is to enable the user to just click on Eclipse and everything will be set up for VTK.

From now on, to run eclipse, click on this file called Eclipse. You can copy and paste it anywhere you like because the paths are absolute. For example you might place it on your desktop.

Installing Pydev

Then start eclipse and install Pydev, see: http://www.pydev.org/ for instructions on how to do this.

Pydev project configuration

Once the previous steps have been completed you can start eclipse and create a Pydev project. The environment variables will have been set automatically in Windows and, if you are using Linux, they should be set automatically be executing either eclipse.sh or Eclipse in the eclipse folder.

After you create your Pydev project you will need to edit PYTHONPATH to include the paths to VTK. To do this right-click on the project, select "Properties" then click on the "External Libraries" tab and add the full paths to the following folders in your build directory:

VTK/Wrapping/Python
VTK/lib
VTK/bin

Once this is done you will be able to edit and run any python script in your project.