Tag: version

  • Python C Extension package version 設定

    不論是 setuptools 或是 distutils 都無法直接設定 C Extension package 的 version,必須採用紆迴的方式進行。 總而言之,Python 3.6 的年代,我們直接使用 setuptools。 0. 預期結果 >>> import jchash >>> jchash.__version__ ‘1.0’ 1.原始狀況 原始 Init function: PyMODINIT_FUNC PyInit_jchash(void) { return PyModule_Create(&module); } 原始 setup.py PACKAGE_VERSION = ‘1.0’ jchash = Extension(PACKAGE_NAME, define_macros=[ (‘PACKAGE_VERSION’, PACKAGE_VERSION)], sources=[‘src/jchash.c’]) 只有這樣是不夠的,Extension 的 define_macros 是在編譯時會加上 -DPACKAGE_VERSION=1.0 這樣的 flag,可是不會幫你轉換成為 package 的 version。 2.改用 PyModule_AddStringConstant 參考資料:PyModule_AddStringConstant…