簡體   English   中英

分發 Cython 生成的 cpp 文件

[英]Distributing cpp files generated by Cython

我是 Cython 的新手,我的目標是將它用作一些“翻譯器”,它將基本的 python 代碼編譯為 c++ 代碼,可以被其他用戶分發和使用。

我已經按照文檔中的每個步驟進行操作,比如說我有一些文件helloworld.pyx

print("hello world!")

為了將此 python 代碼編譯為 c++,我創建了setup.py文件:

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.ohelloworld.cpp和 1 個目錄 - build

嘗試在不指定 python 目錄的情況下執行腳本將給出錯誤gcc helloworld.cpp

 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這樣的 python 目錄時,它可以工作,但不幸的是,輸出被編碼為不可讀的字符。


將python代碼編譯為可以獨立使用的cpp代碼的正確方法是什么(沒有指定python文件)?

謝謝!

如果您使用的是Conda ,您似乎需要libpython-dev包。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM