Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Cygwin在Windows上编译Python扩展_Python_Windows_Cygwin - Fatal编程技术网

使用Cygwin在Windows上编译Python扩展

使用Cygwin在Windows上编译Python扩展,python,windows,cygwin,Python,Windows,Cygwin,我在编译python扩展时经历了一段糟糕的时光——希望有人能帮上忙 我最初尝试执行“python.exe setup.py build”,但收到错误:“python是在Visual Studio 2003中构建的;扩展必须使用能够生成兼容二进制文件的编译器生成…” 因此,我随后下载了Cygwin,并尝试发送开关'-c mingw32'。控制台中写入了几行代码-然后我收到错误消息:命令'gcc'失败:权限被拒绝 我最初使用VisualStudio2010命令行来实现这一点,但尝试了bash并得到了

我在编译python扩展时经历了一段糟糕的时光——希望有人能帮上忙

我最初尝试执行“python.exe setup.py build”,但收到错误:“python是在Visual Studio 2003中构建的;扩展必须使用能够生成兼容二进制文件的编译器生成…”

因此,我随后下载了Cygwin,并尝试发送开关'-c mingw32'。控制台中写入了几行代码-然后我收到错误消息:命令'gcc'失败:权限被拒绝

我最初使用VisualStudio2010命令行来实现这一点,但尝试了bash并得到了相同的结果

我花了大量时间研究这个问题,Cygwin似乎使用了gcc和g++的符号链接,windows不知道如何处理这个问题


我怎样才能强制setup.py使用gcc-3.exe而不是gcc.exe符号链接?

我知道这不雅观,但你可以重命名符号链接并将gcc-3.exe复制到gcc.exe。这在我使用Cygwin的gcc时非常有效。你可能想切换到mingw64-i686(或mingw64-x86_64)打包以获得GCC4.5.3,或者单独安装以在Windows下编译

此外,您还可以在PythonXX\Lib\distutils\distutils.cfg中永久配置distuilts:

[build]
compiler = mingw32

[build_ext]
compiler = mingw32

[build_clib]
compiler = mingw32

我知道这不美观,但您可以重命名符号链接并将gcc-3.exe复制到gcc.exe。这在我使用Cygwin的gcc时对我很有效。您可能希望切换到mingw64-i686(或mingw64-x86_64)包以获得gcc 4.5.3,或者只需单独安装即可在Windows下编译

此外,您还可以在PythonXX\Lib\distutils\distutils.cfg中永久配置distuilts:

[build]
compiler = mingw32

[build_ext]
compiler = mingw32

[build_clib]
compiler = mingw32