2014-05-09 36 views
5

如果我手動調用用Cython我可以刪除文檔字符串,如:如何在使用Cython distutils時刪除文檔字符串?

cython -D mmod.py 

但是當我嘗試使用安裝程序,我無法沿着傳遞-D參數。

setup.py

from distutils.core import setup 
from distutils.extension import Extension 
from Cython.Distutils import build_ext 

ext_modules = [Extension("mmod", ["mmod.py"])] 

setup(
    cmdclass = {'build_ext': build_ext}, 
    ext_modules = ext_modules 
) 

這產生具有可用的所有文檔字符串,比較了-D運行時庫。

回答

5

Cython編譯選項存儲在模塊Cython.Compiler.Options中。所以你正在尋找的是

import Cython.Compiler.Options 
Cython.Compiler.Options.docstrings = False 
+0

感謝您的提示!任何想法如何擺脫.so文件中的其他字符串?我在我的cython化文件中看到仍有方法名稱等。 – yoel

+1

yoel:由於Python需要它們來調用函數/方法,因此無法刪除所有這些字符串。 – hivert

+0

謝謝。你碰巧知道一種使他們不知所措的方法嗎?意思是,隨機更改他們的名字? – yoel

相關問題