cython在64位Windows上与Enthought Canopy一起工作的正式方法是什么? - python

我在Windows 64位计算机上安装了cython 0.22(通过Canopy软件包管理器安装)安装的Python 2.7的“ Enthought Canopy” v1.5发行版。尝试编译cython文件会导致以下错误:

building 'my_cython_extension' extension
error: Could not find Visual Studio 2008 in your path.

If you do not have Visual Studio 2008 installed, you can use
the MinGW compiler instead. To install mingw, do:
    enpkg mingw
To use the MinGW compiler to build an extension module, use
the '-c' flag, e.g.:
    python setup.py build_ext -c mingw64
Note that building Python extensions with MinGW is not officially
supported, although it is known to work in many cases.

Visual Studio 2008不再可用,并且Visual Studio 2008 Express不包括64位编译器。我已经读过,有必要使用与Python编译时相同的编译器来编译cython,这会排除使用较新版本的Visual Studio。此外,该消息明确指出MinGW不受官方支持。

我尝试按照Microsoft Visual C++ Compiler for Python 2.7安装“ Cython Wiki”,但这对使上述错误消息消失没有任何影响。我已经读到更新setuptools可能会解决此错误(因为它可以在与旧版本所期望的位置不同的位置找到编译器),但这对我不起作用,此外,Enthought还具有stated on their website :

已经支持Setuptools 0.6,并且更高版本尚未与Enthought安装程序兼容。

...因此更新setuptools可能会破坏Canopy中的某些内容。

最后,我尝试安装cython Wiki稍后编写的“用于Windows 7和.NET Framework 3.5 SP1的MS Windows SDK”,但这对使消息消失没有任何影响,此外,它是一个庞大的笨拙软件包,如果可能的话,我宁愿不只是为编译器安装。

因此,有没有办法让cython和Enthought Canopy使用“适用于Python 2.7的Microsoft Visual C++编译器”?如果没有,安装和配置cython编译器的正式方法是什么?

python大神给出的解决方案

我花了一天的大部分时间来弄清楚如何使它工作,我衷心希望有一种更好的方法,我很想听听,但这就是为我完成工作的原因:

1)安装Microsoft Visual C++ 2008 Express版-您应该通过Google搜索找到直接下载链接。

2)从here下载“用于Windows 7和.NET Framework 3.5 SP1(ISO)的Microsoft Windows SDK”图像(确保选择64位版本GRMSDKX_EN_DVD.iso)。

3)用7-zip解压iso,或使用您喜欢的软件安装/刻录

4)运行setup.exe并安装。您可以安全地取消选择除“ Visual C++编译器”和“ Windows标头和库”之外的所有内容。

5)将文件C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars64.bat复制到文件夹C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\amd64\并将其重命名为vcvarsamd64.bat

6)不知道这是否有必要,但是您可能需要按照cython Wiki的说明在Visual Studio命令提示符下运行以下命令

set DISTUTILS_USE_SDK=1
setenv /x64 /release

注意1:步骤1似乎是必需的,因为用于.net 3.5的64位Windows SDK似乎没有附带vcvarsall.bat文件。

注意2:步骤5是必需的,因为Visual C++ 2008 Express随附的vcvarsall.bat指向64位编译器的错误位置。