2010/7/18 Alan W. Irwin <ir...@beluga.phys.uvic.ca>:
[...]

> # Get the Python version.
>  execute_process(
>    COMMAND
>    ${PYTHON_EXECUTABLE} -c "import sys; print sys.version.split()[0]"
>    OUTPUT_VARIABLE PYTHON_version_output
>    OUTPUT_STRIP_TRAILING_WHITESPACE
>    )
>  SET(PYTHON_VERSION ${PYTHON_version_output} CACHE STRING "Python version")
>
> (We use this approach currently in PLplot.)  One caveat is the result of
> the above sometimes has trailing information that needs to be trimmed
> off.  For example, on my current system the result is "2.6.5+".

"import sys; print sys.version.split()[0]" will not work with python 3 because
print is a function:
http://docs.python.org/release/3.0.1/whatsnew/3.0.html

so you'd rather use:

"import sys; print(sys.version.split()[0])"

Now you can avoid the trailing informations if you use "sys.version_info"
instead of "sys.version".

On 2.6.5+ you get something like:

>>> print(sys.version_info)
(2, 6, 5, 'final', 0)

while on 3.1.x
>>> print (sys.version_info)
sys.version_info(major=3, minor=1, micro=2, releaselevel='final', serial=0)

using separate

sys.version_info[0]
sys.version_info[1]
sys.version_info[2]

should work both with python 2.[56].x and 3.x.y.

-- 
Erk
Membre de l'April - « promouvoir et défendre le logiciel libre » -
http://www.april.org
_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to