编译cython的HelloWorld示例:不知道如何在平台上编译C/C++代码

Posted

技术标签:

【中文标题】编译cython的HelloWorld示例:不知道如何在平台上编译C/C++代码【英文标题】:Compiling cython's HelloWorld Example: don't know how to compile C/C++ code on platform 【发布时间】:2017-11-09 03:25:57 【问题描述】:

每当我尝试编译 simpleset cython 示例时

helloworld.pyx

print "Hello World"

setup.py

from distutils.core import setup
from Cython.Build import cythonize
setup(
    ext_modules = cythonize("helloworld.pyx")
)

我收到了

c:\> python setup.py build_ext --inplace --compiler=c:\cygwin64\bin\gcc
running build_ext
error: don't know how to compile C/C++ code on platform 'nt' with 'c:\cygwin64\bin\gcc' compiler

我做错了什么?

附:我正在使用

Python 3.6.0 |Anaconda 4.3.1 (64-bit)| (default, Dec 23 2016, 11:57:41) [MSC v.1900 64 bit (AMD64)] on win32

【问题讨论】:

这可能是相关的,***.com/a/16737696/5781248 您的 python 代码似乎在版本 2 中,而您安装了 python 3.6。但是对于你问题的根源,我不知道 您在 Windows 上?您能否提供有关您的操作系统、编译器的更多信息? 【参考方案1】:

我不了解 Cython,但您可以执行以下操作: 将 c:\cygwin64\bin\ 添加到 PATH。然后,而不是:

python setup.py build_ext --inplace --compiler=c:\cygwin64\bin\gcc

运行:

python setup.py build_ext --inplace

【讨论】:

【参考方案2】:

cython 指定编译器--compiler= 非常棘手。我在 Ubuntu 上遇到了同样的问题。 显示没有错误的正确命令是

python setup.py build_ext --inplace

【讨论】:

以上是关于编译cython的HelloWorld示例:不知道如何在平台上编译C/C++代码的主要内容,如果未能解决你的问题,请参考以下文章

Cython 编译将文本附加到文件名,如何摆脱它?

分发 Cython 生成的 cpp 文件

如何手动编译使用 C++ 的 Cython 代码?

用于将数组/向量发送到 C++ 脚本的 Cython 示例

Cython 编译错误“常量表达式中不允许”

将 Cython 生成的 .c 文件编译成 exe 文件