我是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.cpp
,build
和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文件)?
谢谢!