问题描述
我试图在Windows 7(32位)和Python 3.2上安装Cython 0.14。我按照http://wiki.cython.org/InstallingOnWindows上给出的说明进行操作,但是遇到了很多问题。我认为我完全按照MinGW的说明进行操作,除了有关打开提示并测试是否正确安装MinGW的部分(我该如何测试?)。
我尝试通过键入以下命令安装Cython时遇到了一些错误
python setup.py install
在cygwin中,但我解决了这些问题。但是,我的python 3.2仍然不知道Cython的存在,因此我追踪到问题在于cython被安装在c:\\ cygwin \\ lib \\下,而python被安装在c:\\ python32下。因此,我尝试了多种将cython移至python文件夹的方法,但是由于我不知道所有操作都在哪里,因此这些尝试都没有实现。
在此期间,我尝试寻找不同的,更快的python解释器,并安装了pypy。我还重新安装了python 3.2,以清除尝试在python目录中安装cython造成的混乱。
然后,稍后我尝试使用相同的脚本使用命令提示符再次安装cython,但发现python的默认版本已更改为2.6,这可能是由于cython安装失败而引起的。但是发现python 2.6无法编译setup.py文件,我只是做了
c:\\python32\\python setup.py install
在cython目录中。这一直有效,直到给我一个错误
TypeError: nonetype() is Unordered: if self.gcc_version <= \"2.91.57\":
在python32的distutils.cygwinccompiler模块中。所以我将其更改为
if (not self.gcc_version == None) and self.gcc_version <= \"2.91.57\":
当我尝试在命令提示符下再次安装时,出现以下错误:
running build
running build_py
running build_ext
Access is denied.
skipping \'C:\\cython-0.14.1\\Cython\\Plex\\Scanners.c\' Cython extension (up-to-date)
building \'Cython.Plex.Scanners\' extension
C:\\cygwin\\bin\\gcc.exe -mno-cygwin -mdll -O -Wall -IC:\\python32\\include -IC:\\Pyth
on32\\PC -c C:\\cython-0.14.1\\Cython\\Plex\\Scanners.c -o c:\\cython-0.14.1\\cython\\pl
ex\\scanners.o
error: command \'gcc\' Failed: Permission denied
我用cygwin尝试了同样的事情,但得到了同样的错误。我已经重新启动计算机,然后再次尝试,仍然是同样的错误。
任何帮助都将不胜感激,因为我花了整整一整天都没有用。
解决方法
“拒绝权限”仍然是一种不错的查看方式。之所以会发生,是因为:
gcc命令不可执行(很奇怪,但是您能够键入\“ gcc --version \”并获得输出吗?)
目标路径“ c:\\ cython-0.14.1 \\ cython \\ plex \\\”不可用或不可写。如果您具有管理权限来安装它并与用户权限一起使用,也许是这种情况。尝试授予此处的所有人访问权限。 (主持人:我不是Windows专家^^)
, 尝试从命令行使用g ++进行编译时,请参阅获取“拒绝访问”。 Cygwin。这完全解决了您的问题。问题显然是符号链接(正如我今天对我的困惑所了解的那样)。