转载请注明出处!!!
学习交流而已,有不足之处还请各位大佬多多指点!!!
# 准备
项目需要,是在windows7上操作。python3.7,针对python项目,而非单个的python程序。
思路:先将py代码转成c代码,然后编译成pyd(window上是pyd,linux上是so)文件
安装cython:pip install cython
# 编译
**直接上源码**
import
# 运行
在要打包的目录的同级目录下,创建setup.py,将上述代码复制到setup.py, 直接运行setup.py即可。
执行成功后,会出现一个build文件夹,其中包含有和要打包的项目结构一样的项目,和原项目不同的是,其中的py文件(除__init__外)均被打包成pyd文件,如此源码就被保护起来了。
# 注意
windows上使用cython打包有很多坑
1. 出现“Unable to find vcvarsall.bat”错误
**方法:**
python3只能通过安装对应版本的vc++来解决
2. FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2)
**方法:**
在要打包的每个py文件中的第一行,添加如下语句,# cython: language_level=3
3. 编译后执行需要相同的python版本和编码
参考:
https://blog.csdn.net/qq_20154743/article/details/77891572
Python生成pyd文件 - 杨仕航的博客
可乐小埋酱:setup-cython(1):保护Python源码,提升执行性能