我在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有{{ 3}}那个:
已支持Setuptools 0.6,更高版本尚未与Enthought安装程序兼容。
...所以更新setuptools可能会破坏Canopy中的内容。
最后,我尝试安装“MS Windows SDK for Windows 7和.NET Framework 3.5 SP1”,稍后将在cython Wiki中编写,但这对于使消息消失没有任何影响,此外它还是一个巨大的如果可能的话,我宁愿不为编译器安装笨重的软件包。
那么,有没有办法让“Visual C ++编译器for Python 2.7”与cython和Enthought Canopy一起使用?如果没有,安装和配置cython编译器的官方方式是什么?
答案 0 :(得分:3)
我花了一天的时间来弄清楚如何使这个工作,我真诚地希望有一个更好的方式,我很乐意听到,但这就是为我完成工作的原因:
1)安装Microsoft Visual C ++ 2008 Express版 - 您应该通过Google搜索找到直接下载链接。
2)下载适用于Windows 7和.NET Framework 3.5 SP1(ISO)的#34; Microsoft Windows SDK"图像(请务必从here
中选择64位版本GRMSDKX_EN_DVD.iso
)
3)用7-zip解压缩iso,或用您首选的软件安装/刻录
4)运行setup.exe并安装。您可以安全地取消选择除" Visual C ++编译器"之外的所有内容。和#34; 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)不确定是否有必要,但您可能需要在Visual Studio命令提示符中运行以下命令,如cython wiki中所述
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位编译器的错误位置。
答案 1 :(得分:2)
(Enthought Support Here)
有关最新信息,请参阅我们的知识库,该知识库总结了问题并提供了building extensions on Windows (as well other platforms)所需组件的有用链接
关于用于Python 2.7"的Microsoft Visual C ++编译器,我们正在努力在下一版本中将Canopy的Python版本更新到2.7.9,其中包括支持Microsoft&的所需更改#39;新的编译器。我们预计Canopy 1.5.3将于下周某个时候发布。
现在使用SDK,我们建议的步骤是:
安装SDK。
安装SDK后,您需要启动 SDK命令提示符并在编译扩展程序之前设置两个环境变量:
set DISTUTILS_USE_SDK=1
setenv /x64 /release
假设您没有更改默认的SDK安装路径,则应如下所示:
C:\Program Files\Microsoft SDKs\Windows\v7.0>set DISTUTILS_USE_SDK=1
C:\Program Files\Microsoft SDKs\Windows\v7.0>setenv /x64 /release
(注意:如果在32位系统上,您可能需要将/x64
交换为/x86
。)
根据我的理解,使用 SDK命令提示符设置这些变量将有助于避免vcvarsall.bat
周围的所有额外配置/手术。