Pytango Windows compile

Dear all,

I hope this is the right place to ask for support regarding this topic.

I'm trying to compile Pytango on Windows but after many trials, I still can't make b2 to build libboost_python37….. lib.

I have the following setup:
- Windows 10
- Visual Studio 2013 (VS12)
- Python 3.7
- Boost 1.66 and 1.75 (I tried with both believing that maybe 1.75 is too new)
- TANGO 9.2.2
- Pytango 9.2.5

The build is a 2-step one:
1. Build Boost
2. Build Pytango

I achieved 2 using the provided VS14 project which I modified to work with VS12 using the tips from:
https://www.tango-controls.org/community/forum/c/development/python/pytango-921-installer-for-python3-on-windows/?page=1

I trust that everything works fine here (except of course for the missing boost lib)

The main issue is 1. For this I tried multiple approaches:

1)

> bootstrap.bat
> b2 stage toolset=msvc-12.0 variant=release link=shared threading=multi runtime-link=shared address-model=64 install


2)

> bootstrap.bat –with-python-version=3.7
> b2 stage toolset=msvc-12.0 variant=release link=shared threading=multi runtime-link=shared address-model=64 install


3)

> bootstrap.bat –with-python=[path for python bin] –with-python-version=3.7 –with-python-root=[path for python libs]
> b2 stage toolset=msvc-12.0 variant=release link=shared threading=multi runtime-link=shared address-model=64 install


4) again 1) but creating a user-config.jam file
having the followind content:


# ——————-
# MSVC configuration.
# ——————-

# Configure specific msvc version (searched for in standard locations and PATH).
using msvc : 12.0 ;

# ———————
# Python configuration.
# ———————

# Configure specific Python version.

using python
: 3.7 # Version
: [python.exe path] # Python Path
: [python include path] # include path
: [python libs path] # lib path(s)
: <define>BOOST_ALL_NO_LIB=1
;


The problem I experience in this case is due to the fact that my paths contain whitespaces. Although I have enclsed the paths in double quotes (") - as detailed in boost manual - the paths are not processed correctly.

I need some support / thoughts if I do something wrong and how to force b2 to build the libboost_python lib.

Thank you!
Some time ago, I successfully managed to compile PyTango with the steps you describe and the post you linked above.
However I remember it was a mess and am very happy that I didn't need to do it in a while since now there are official precompiled packages available via `pip` and `conda`.
So the first question is why do you need to compile it yourself? Do you really need the 9.2.X? If you can, just try to download and install the latest (9.3.1 on Windows) from pip or conda.

Regarding the problem of white spaces in paths, is it an option to just move to simpler paths? I used C:\boost-root\ and C:\tango-root\ for all steps and it worked OK.

Regarding the MSVC version, you have to be careful since mixing MSVC versions is generally a bad idea and may cause unexpected crashs etc. Python 3.7 is compiled using MSVC14 ( https://wiki.python.org/moin/WindowsCompilers ), so that should also be the target version for you.

Back then, I also used MSVC12 because the Windows Tango installer included only the lib/dll files for that version, and it seemed to work for DeviceProxy clients, but crashed when trying to run a device server.

Finally, I seem to remember it was also relevant what version of numpy was installed in Python as this appears somewhere in the PyTango build scripts, so that's one more thing to look out for.
 
Register or login to create to post a reply.