Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

 

Code Block
languagebash
export PYTHONPATH=$PYTHONPATH:<prefix>/4.1.0.9/lib/python2.7/site-packages/ecflow
# If you used the default's then <prefix>=/usr/local
# otherwise you should use whatever you entered for -DCMAKE_INSTALL_PREFIX, hence in the examples above we would have:
export PYTHONPATH=$PYTHONPATH:/usr/local/apps/ecflow/4.1.0.9/lib/python2.7/site-packages/ecflow 

Installing Python to a custom  directory

The default install for ecflow, will install python(if it was enabled) under the directory given to CMAKE_INSTALL_PREFIX.

However sometimes we may need to install the ecflow python module to a different prefix.

This can be done using:

Code Block
cd $WK/build  # change to the build directory
cmake -DCMAKE_INSTALL_PREFIX=/var/tmp/avi/custom -DCOMPONENT=python -P cmake_install.cmake -- make install  # install python module under /var/tmp/avi/custom

 

boost-build/bjam

  • Now make sure bjam is accessible from $PATH or use $BOOST_ROOT/bjam  in place bjam below.
  • For installation the following environment variables are required.
    ECFLOW_INSTALL_DIR         # Directory Location for client ,server and gui program's
    ECFLOW_PYTHON_INSTALL_DIR  # Directory Location for ecflow python package

    The python installation can be customised, by changing Pyext/jamfile.jam and $BOOST_ROOT/tools/build/v2/site-config.jam.
    To use python3, you need to update/add  in site-config.jam or user-config.jam.

    Code Block
    # Python configuration
        #using python
        #     :  # version
        #     :  # cmd-or-prefix
        #     :  # includes
        #     :  # libraries
        #     :  # condition
        #     ;
    using python : 3.5 : python3 : <path/to/python3/exe> ;
  • To disable ecflow python api.  "export ECF_NO_PYTHON=1"
  • We now need to build ecFlow. Currently ecflowview/GUI is only built if environment variable of name ARCH is set to linux:

    Code Block
    languagebash
    cd $WK
    bjam variant=release

     

    On some systems like fedora/redhat you may run into compiler errors which complain about the template depth being exceeded. In this case compile using:

     

    Code Block
    languagebash
    cd $WK
    bjam c++-template-depth=512 variant=release
    
    # using boost 1.53 with gcc 4.8, will have excessive warnings. To prune these warnings use
    bjam c++-template-depth=512 cxxflags=-Wno-unused-local-typedefs variant=release

     

    If you have a multi-core machine, you can speed up the build using,  the -j<n> option. Where ‘n’ is an integer, of the number of cores.

     

    Code Block
    languageapplescript
    CPUS=$(lscpu -p | grep -v '#' | wc -l)
    bjam variant=release -j${CPUS)
  • Once ecFlow is built it can be installed.    NOTE, if you used c++-template-depth=512 || cxxflags=-Wno-unused-local-typedefs, use it again for the next step.

     

    Code Block
    languagebash
    bjam variant=release install-all

     

    This will create directories:

    Code Block
    <ECFLOW_INSTALL_DIR>/bin
    <ECFLOW_INSTALL_DIR>/lib
    <ECFLOW_INSTALL_DIR>/doc
    <ECFLOW_INSTALL_DIR>/share
    <ECFLOW_PYTHON_INSTALL_DIR>

    Depending on your umask setting you may need to call chmod 755 on the executables

  • To use the ecFlow Python Api , you need to add/change PYTHONPATH . 

     

    Code Block
    languagebash
    export PYTHONPATH=$PYTHONPATH:$ECFLOW_PYTHON_INSTALL_DIR
    

...