創建一個pxd定義文件最簡單的方法是什麼,它只是收集通過pyx文件複製的cdefs,而不創建新的擴展?如何在不使用擴展的情況下使用cython定義文件(pxd)?
我的情況如下:我想在pxd文件(hp/src/common.pxd)中收集一些extern cdefs。我還添加了一些非外部的cdef,其實現在common.pyx中。
在另一個pyx文件(hp/src/_lib.pyx)中,我把它變成了一個擴展,我引用了一些常用的東西。
在setup.py文件創建以下擴展:
Extension('hp._lib',
['hp/src/_lib.pyx'],
language='c++'),
通過這樣做,沒有common.cpp文件被創建,所以它看起來像它的依賴不會自動處理。這是第一個問題。
然後,手動運行'cython --cplus common.pyx'在目錄hp/src中正確創建一個common.cpp文件,如果我將'hp/src/common.cpp'添加到擴展列表中來源,命令python setup.py安裝一切都沒有抱怨,但是,然後,導入模塊hp觸發一個ImportError:No module common ... from _lib.cpp ... 我卡在這裏。任何想法?
您也可以嘗試在[cython-users](https://groups.google.com/forum/#!forum/cython-users) – forivall