gpt4 book ai didi

python - 构建使用 C++11 功能的 Python 扩展时出现问题

转载 作者:太空宇宙 更新时间:2023-11-03 17:54:52 26 4
gpt4 key购买 nike

我正在尝试在 Windows 8.1 上构建一个使用 C++11 功能的 Python3.42 64 位扩展模块。该模块可以使用 gcc 或 clang 在 Linux 和 MacO 中正确构建。

在 Windows 上,我安装了 Visual Studio 2010 Express 和 Windows sdk 7.1(以安装 x64 编译器,而 VS2010 Express 中显然缺少该编译器)。我已经能够构建部分扩展,但某些 C++11 功能存在错误,而这些功能在 VS2010 中不可用。我可以修改扩展代码以避免使用这些 C++11 功能,但我们有更多带有 C++11 功能的扩展,而且我是团队中唯一使用 Windows 的人......所以这不是一个可行的选择。我更愿意按原样构建它。

所以问题是。如何使用具有更完整的 C++11 实现的 VS 编译器版本(例如 VS2012 或最好是 VS2013)在 Windows 上构建 python 3 扩展?

最佳答案

好吧,我会回答自己这个问题。

我猜解决方案是使用 vs2012 或 vs2013 来构建扩展。在这种情况下,我需要使用 vs2012 或 vs2013 重建 python 解释器。我找到了这个页面,其中解释了如何操作:http://p-nand-q.com/python/building-python-33-with-vs2013.html很高兴您可以从此页面下载 vs2013 构建的 python 二进制文件。然而,遵循这条路线意味着我必须使用 vs2013 构建我可能需要的每个非纯 python 扩展,这可能是一些,因为我主要是在做研究而不是生产,而且我不知道我可能需要什么扩展。构建 numpy 和 scipy 并不简单,它们似乎需要 fortran 编译器来构建它们。我想这是我想避免得出的结论,我希望有一些技巧来避免它。

最后我选择修改代码的 C++11 部分,以便它可以使用 vs2010 构建,这不太好,但我认为我会避免 future 构建我可能需要的每个扩展时出现的很多问题。我可以从这里下载 Windows 二进制文件:http://www.lfd.uci.edu/~gohlke/pythonlibs/

我猜另一个解决方案是在 Linux 或 MacO 中开发。

关于python - 构建使用 C++11 功能的 Python 扩展时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28635434/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com