最近用python写了一个小程序,想发布出去让人试用又不想暴露源码,搜索了一下发现将py文件编译成pyd文件就能达到目的。
转换过程很简单,但是在调用pyd文件并且打包为单个exe文件的时候遇到一个坑,搞了一天才解决,在这里分享一下。
首先安装cython库
个人比较喜欢用清华的镜像库,速度快。
pip install Cyphton -i https://pypi.tuna.tsinghua.edu.cn/simple
然后创建一个setup.py文件
写入以下内容:
from distutils.core import setup
from Cython.Build import cythonize
setup(ext_modules=cythonize("BetaV14.py"))
BetaV14.py就是要转换为pyd文件的代码文件
命令行输入:
python setup.py build_ext --inplace
会在.py文件目录下生成一个BetaV14.cp37-win_amd64.pyd文件,文件名中“.cp37-win_amd64”这一段可以删除,不删除也可以正常调用;但原文件名字段不能改变。
接下来需要打包发布为.exe文件
我用的是pyinstaller,还是用清华镜像库安装。
pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple
根据一些教程,有的说在命令行直接输入:
pyinstaller -F BetaV14.py
就能直接引用pyd文件打包发布ex