I wanted to deploy a python server on OpenShift which would be able to use OpenCV Image processing tools. I found a nice blog post here, however I had multiple issues with it.
- The link to the OpenCV source files was broken
- It required a manual installation of python and cmake
- Changed many important environment variables
I decided to make a more updated blog post on the installation.
Installation
OpenShift now officially supports a python cartridge, so you do not need to
install it manually. Choose Python 2.7
for your cartridge. Log in to your
application by using your apps ssh link. Now go into your temp directory.
1
cd $OPENSHIFT_TMP_DIR
Now download and extract OpenCV
1
2
wget http://pkgs.fedoraproject.org/repo/pkgs/opencv/OpenCV-2.4.3.tar.bz2/c0a5af4ff9d0d540684c0bf00ef35dbe/OpenCV-2.4.3.tar.bz2
tar xvf OpenCV-2.4.3.tar.bz2
Notice: This is OpenCV version 2.4.3
. I only tested it on this version. Other versions might not work.
Now we need to remove some files to prevent a Disk quota exceeded
error from
occurring.
1
2
3
4
5
6
7
8
9
10
rm OpenCV-2.4.3.tar.bz2
cd OpenCV-2.4.3/
rm -r 3rdparty/
rm -r android
rm -r doc
rm -r data
rm -r ios
rm -r samples
rm -r apps
rm README
Now we have to edit CMakeList.txt
so we do not get an error from the files we
just removed. We also need to make sure certain tests are not performed. Run
the command vim CMakeList.txt
. You can use :set number
to show the line
numbers in vim. Now turn off regression and performance tests on lines 155-156.
It should look like this:
1
2
OCV_OPTION(BUILD_PERF_TESTS "Build performance tests" OFF IF (NOT IOS) )
OCV_OPTION(BUILD_TESTS "Build accuracy & regression tests" OFF IF (NOT IOS) )
To ensure the program does not try to access the folders we just deleted comment out lines 448-456. It should look like this:
1
2
3
4
5
6
7
8
# Generate targets for documentation
#add_subdirectory(doc)
# various data that is used by cv libraries and/or demo applications.
#add_subdirectory(data)
# extra applications
#add_subdirectory(apps)
Now we need to fix the installation parameters for
OpenCV so it installs on the python already installed by OpenShift (its okay I did that for you). Make sure you care in the OpenCV
folder.
1
2
3
4
5
6
7
mkdir release
cd release
cmake ../OpenCV-2.4.3 -D BUILD_NEW_PYTHON_SUPPORT=ON -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=$OPENSHIFT_DATA_DIR -D PYTHON_LIBRARY=$LD_LIBRARY_PATH/libpython2.7.so -D CMAKE_INCLUDE_PATH=$OPENSHIFT_HOMEDIR/python/virtenv/include/python2.7 -D PYTHON_INCLUDE_DIR=$OPENSHIFT_HOMEDIR/python/virtenv/include/python2.7 -D PYTHON_PACKAGES_PATH=$OPENSHIFT_HOMEDIR/python/virtenv/lib/python2.7/site-packages -D PYTHON_EXECUTABLE=$OPENSHIFT_HOMEDIR/python/virtenv/bin/python -D WITH_OPENEXR=OFF -D BUILD_DOCS=OFF -DBUILD_SHARED_LIBS=ON ..
make
make install
Testing
You should get no error messages when you type import cv2
1
2
3
4
5
6
Python 2.7.8 (default, May 19 2015, 02:50:14)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> print cv2.__version__
2.4.3