我可以在不安装Visual Studio 2008的情况下为Windows*上的Python2.7到3.1开发C扩展吗?

2024-09-27 02:20:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道Windows上的Python扩展通常必须使用用于编译Python本身的visualstudio版本来构建,而且我还知道python2.7到3.1是使用visualstudio2008构建的。但我现在使用的机器已经安装了VS2013,而且,正如我无数次发现的那样,一种快速搞乱Windows开发环境的方法就是按照从旧到新的顺序安装VisualStudio。除此之外,在全新的Windows8.1上安装VS2008似乎很愚蠢。Python扩展是我仅有的需要2008的东西;如果我可以避免安装它,我真的不想安装它。在

我是否可以避免安装VS2008,并且仍然根据官方的Python发行版进行构建,也许通过安装一个特定的平台SDK?如果没有,是否有一个Python的替代版本,比如MinGW,或者不需要我安装vs2008?在


Tags: 方法版本机器官方环境顺序windowssdk
1条回答
网友
1楼 · 发布于 2024-09-27 02:20:05

我可以为你的问题提出一些可能的解决办法。从最简单的到可能最难的:

  1. 只需使用visualstudio2013来编译扩展模块。为此,扩展模块不能访问Python解释器创建的任何C运行时对象,也不能将它创建的任何C运行时对象传递给解释器。特别是不能使用Python提供的任何FILE*或FILE descriptor对象。您仍然可以读写模块中的文件,只是不能读写Python打开的文件。

  2. 卸载Visual Studio 2013,安装Visual Studio 2008,重新安装Visual Studio 2013。虽然这听起来很傻,但它可能会比以下任何一种解决方案更快、更不令人沮丧。这将使您能够正常地构建扩展模块,并且不必担心使用什么C运行时对象。

  3. 使用mingw32并使用各种各样的方法使其工作。这个页面解释了一个人是如何让它工作的:https://lists.launchpad.net/kicad-developers/msg09473.html

  4. 从安装在另一台计算机上的VS2008复制相应的msvcrt*.lib文件。手动编辑链接器选项以使用此库,而不是使用同名的VS 2013 msvcrt*.lib。如果不起作用,也复制include文件和其他库,并修改编译器和链接器选项以使用它们。如果仍然不起作用,请复制VS2008命令行编译器及其所有依赖DLL,正确设置路径,然后修改生成过程以使用该编译器。

相关问题 更多 >

    热门问题