从link开始,声明MSVC是Windows 64位的首选。但是,对于免费的VC ++ 2010 Express Edition或Windows SDK,似乎不支持openmp。这是否意味着,在Windows中使用Cython进行并行计算没有干净的方法?
感到如此绝望。我想我可以购买零售版 - 如果这是唯一的解决方案。
答案 0 :(得分:2)
编辑:这个答案的旧版本主要适用于Python 2和早期版本的Python 3,因为它们依赖于真正旧版本的MSVC。如果可能的话,现在的解决方案是使用更新版本的Python及其相应版本的MSVC。
混合C运行时可能会导致无法预料的崩溃。例如,如果一个C运行时分配一个指针而另一个C运行时试图释放它,它就会崩溃。一般来说很痛苦,但有可能让这种事情正常工作,但如果你能够使用足够新版本的Python,那么混合编译器根本不是必需的,因为较新的MSVC版本可以做你需要的。
虽然Cython文档不鼓励它,但最新版本的MinGW-w64应该可以使用。 有关不兼容运行时的警告应在MinGW 4.7之后解决,但仍要小心。
你可以将MinGW-w64与OpenMP一起使用(参见this question关于如何获取二进制文件),理论上,应该可以配置Cython来使用它。
MinGW builds项目是安装编译器的好方法。
您可能还需要配置distutils以使用MinGW,如this answer中所述。