分发Cython生成的cpp文件

时间:2018-04-03 20:54:53

标签: python c++ gcc cython

我是Cython的新手,我的目标是将其用作一些"翻译"它将基本的python代码编译成c ++代码,可以由其他用户分发和使用。

我已按照文档中的每一步操作,说我有一些文件print("hello world!")

setup.py

要将此python代码编译为c ++,我创建了from distutils.core import setup, Extension from Cython.Build import cythonize extensions = [ Extension( "helloworld", sources=["helloworld.pyx"], language="c++" ), ] setup( ext_modules = cythonize(extensions), ) 文件:

python setup.py build_ext --inplace

最后,我使用生成2个新文件的helloworld.o - helloworld.cppbuild和1个目录 - gcc helloworld.cpp

尝试在不指定python目录的情况下执行脚本将产生错误helloworld.cpp:17:10: fatal error: 'Python.h' file not found #include "Python.h" ^ 1 error generated.

gcc -c -I/usr/include/python2.7 helloworld.cpp -o main.out

当像public static ArrayList recurse_nums(Set<Integer> currentnums, String currentstring, ArrayList list_of_permutes){ if(currentnums.size()==1){ int elem = currentnums.iterator().next(); list_of_permutes.add(currentstring + Integer.toString(elem)); return list_of_permutes; } for(int a:currentnums){ String newstring = currentstring + a; Set<Integer> newnums = new HashSet<>(); newnums.addAll(currentnums); newnums.remove(a); recurse_nums(newnums, newstring,list_of_permutes); } return list_of_permutes; } 那样指定python目录时,它可以工作,但不幸的是输出是用不可读的字符编码的。

将python代码编译为可以独立使用的cpp代码的正确方法是什么(没有指定python文件)?

谢谢!

0 个答案:

没有答案