The developer life becomes incredibly complicated once you work in commercial companies. Recently, I ran into the problem that I wanted to install the Python packages turbodbc
, sktime
, and tslearn
. All are speeded up by using C-functions under the hood. pip
builds these functions when installing the packages. If you lack of a proper C compiler (apparently only Microsoft C++ Build Tools are “proper”), you run into the error message
distutils.errors.DistutilsPlatformError: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
Which is surprisingly a quite common issue reported on stackoverflow, but all answers recommend to just install the tools, e.g. here.
The Microsoft C++ Build Tools require a Visual Studio License, i.e. “Community”, Professional, or Enterprise. Now, while the tools are freely available for open-source development under the Visual Studio Community, the question is if the license also applies for building the (developed) software on a different system.
Here is a snippet from the license
Visual Studio Community 2019 is a free, full-featured IDE for any developer building non-enterprise apps across any platform or device. ...
Organizations
- An unlimited number of users within an organization can use Visual Studio Community for the following scenarios: in a classroom learning environment, for academic research, or for contributing to open source projects.
- Any number of users may use the software to develop and test device drivers for the Windows operating system.
- For all other usage scenarios: In non-enterprise organizations up to 5 users can use Visual Studio Community. In enterprise organizations (meaning those with >250 PCs or > $1M in annual revenue) no use is permitted for employees as well as contractors beyond the open source, academic research and classroom learning environment scenarios described above.
I am left absolutely puzzled. While the license seems to be very clear, I am unsure if the build process still belongs to the development of a software (in this case the open-source library that enthusiasts with no relation to me have written). And, why should one like to develop something free & open-source, if part of the community (OK, the commercial part of the community) would need to buy something from a giant like Microsoft to install (a one-time action) their software/library? Nonetheless, the Microsoft C++ Build Tools seem to be the standard in developing C-based Python libraries. MinGW is only supported up to Python 3.4
BTW, do not to get side-tracked with the MS Build tools, which are open-source and released under the MIT License.