很多时候我们都是以源代码发布的形式发布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",]