很多时候我们都是以源代码发布的形式发布Python项目,但有时间为了达到保护代码,我们需要通过Cython把python的文件编译转换成二进制文件。同时 也能一定程度上提高Python模块的加载

1、安装Cython

笔者由于电脑上装了Anconada3.6,所以自带了Cython,无需再安装。

也可以上 http://docs.cython.org/ 下载 Cython-XXX.tar.gz, 运行 “ python setup.py install”安装

 

2、创建需要打包成二进制包的python文件(util1.py)

class util_1:
    def fun_Hello(self):
        print("hello 2019")

3、创建一个setup.py 文件,内容如下:

from distutils.core import setup
from Cython.Build import cythonize

setup(
    name = "test",
    ext_modules = cythonize("test.py")
)

4、运行编译程序

python setup.py build_ext --inplace

5、得到的 util1.cp36-win_amd64.pyd 的可以直接当成模块,通过python调用

from util1 import util1

if __name__ == '__main__':
    obj1 = util1()
    obj1.helloFun()

6、打包Python包(目录)

需在该目录下创建 __init__.py 文件(如下),在该目录下执行编译程序(setup.py)

#__init__.py
__all__ = ["util_1",]