我一直在尝试在Windows 7系统上为Python 2.7安装Cython,特别是我希望全部使用64位。(如果您想知道的话,我需要Cython是因为它是我需要用于某些专业数值分析的另一个软件包的组成部分。并且x64对于存储大型数据集可能是一个优势。)
所以我从官方网站下载了x64 Python 2.7。从Christoph Gohlke获取了Cython。当然, 是Python 2.7 的amd64版本。在安装之前,我使用Joe DF在此处的答案中找到的.reg
文件将Python 2.7添加到了注册表中。随后,我从这里(我认为它不起作用)和这里(但这个应该可以)安装了Visual C++编译器。此时,在我的C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin
目录中有所有的vcvars32.bat
,vcvars64.bat
,vcvars86_amd64.bat
,vcvarsx86_ia64.bat
。我运行了vcvars64.bat
,没有出现错误消息。
随后,我按照此页面的说明创建了一个“hello world”测试文件。
然后,我得到了这个错误。
...\Tests>python setup.py build_ext --inplace
running build_ext
building 'hello' extension
error: Unable to find vcvarsall.bat
所以我想:嗯,Cython找不到那个文件,因为它不存在。(我在整个硬盘上都搜索了一遍。)所以我把 vcvars64.bat
从 ...\VC\bin
复制到 \VC
并将其名称改为 vcvarsall.bat
。现在,vcvarsall错误消失了。然后...自然地,一个新的错误出现了。
...\Tests>python setup.py build_ext --inplace
running build_ext
building 'hello' extension
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\amd64\cl.exe /c /nolog
o /Ox /MD /W3 /GS- /DNDEBUG -IC:\Python27\include -IC:\Python27\PC /Tchello.c /F
obuild\temp.win-amd64-2.7\Release\hello.obj
hello.c
C:\Python27\include\pyconfig.h(227) : fatal error C1083: Cannot open include fil
e: 'basetsd.h': No such file or directory
error: command '"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\amd64
\cl.exe"' failed with exit status 2
现在我不知道该怎么办了。我该怎么做?非常感谢你的帮助。
(为了清晰起见,我尝试将编译器设置为Mingw32,但出现了其他错误。目前我正在专注于让VC工作。)
编辑:我尝试按照这个页面上的说明使用SDK构建环境CMD。我收到了相同的错误信息。
VS90COMNTOOLS
。实际上,在去到VS90COMNTOOLS
之前,Cython会先搜索VC目录。至少在构建的初始步骤中,Cython能够像问题描述中所述地找到VC组件。不过还是谢谢你。 - Argyllbasetsd.h
和windows.h
(在构建C++程序页面中提到的另一个头文件)都没有。不知道为什么。 - Argyll