使用C ++扩展Python 3.5(Windows)

时间:2016-01-15 21:22:16

标签: python cython

我的目标是能够使用有意义的参数在C ++中调用函数。

我不能只使用subprocess.call,因为我进入main(int argc,char ** argv)并且我有一堆字符串要处理。我不想用字符串解析矩阵。

我试图使用Cython,因为这似乎是合理的事情。但是虽然有很多指南可以让Cython运行,其中大部分都是2.7,而且很少看到两个建议同样的事情。

我的问题基本上是否有人知道如何在Py3.5上运行Cython?或者知道指南或什么?我输了。

1 个答案:

答案 0 :(得分:1)

好吧所以我犯了一个非常愚蠢的错误,正在使用msvs进行编译,花了很多时间来努力工作但是忘记了,' msvc'诀窍。对于任何路人,如果您使用的是3.5+,那么您应该使用Visual Studio 2015.使用&pff3安装cython'安装cython后,创建一个setup.py文件,放置此文件

from distutils.core import setup
from Cython.Build import cythonize

setup(ext_modules = cythonize(
       "TestCython.pyx",                 # our Cython source
       #sources=["Rectangle.cpp"],  # additional source file(s)
       language="c++",             # generate C++ code
  ))

创建一个.pyx文件(让我们说' TestCython.pyx')你写下你想要的任何东西(让我们说' print(") ; Hello World")&#39 ;.cy​​thonize的sources参数是可选的。

然后cd进入.pyx和.py文件所在的位置并运行
' python setup.py build_ext --inplace --compiler = msvc'

这应该编译为.cpp然后.pyd文件(后者是你将使用的文件)。如果您只是在导入TestCython后立即打印出hello世界。

请参阅文档和Google以获取其他任何内容。 ;)