Python程序加密打包

Python012

Python程序加密打包,第1张

步骤:

1、使用此文程序编译python源程序为pyd

链接: https://www.jianshu.com/p/4465cf9283b6

2、编写入口py文件,调用pyd模块

注意点:

1、由于pyinstaller不会导入pyd程序依赖包,所以需要将pyd程序依赖包在入口py文件中导入一次,避免打包exe时pyd无法使用

2、打包exe后,路径有所变化,pyd中路径需使用绝对路径

3、pyd文件不要写入口调用,if main等,在入口py文件中导包及调用相关函数

优点:脱离python环境,包依赖

缺点:文件较大

步骤:

1、将入口py文件打包为exe可执行程序,会自动导入pyd文件并进行封装

注意点:

1、打包exe后,cmd下运行程序,看是否有错误输出,按提示解决相应问题即可

使用python内部基础工具包Distutils打包程序:

在打包之前需要做的就是配置好安装脚本,一般为setup.py文件;

示例(setup.py):

from distutils.core import setup

setup(name='Hello',

 version='1.0',

 description='example',

 author='haomiao',

 py_modules=['hello'])

该配置文件,只使用了py_modules参数,单一的模块文件名hello.py,当然还有其他的属性、选项可设置hello.py应与setup.py在同一目录下,分发的时候最好将该目录作为单独的一个目录文件,并将其所依赖的或需要的文件、资源均放在这个目录下或其子目录下,该目录就可以分发给其他开发人员或客户(一般的最终客户不会做这些安装的繁琐事情)

此外,若有其他的资源文件或是其他的多个py文件,则可以增加packages等其他相关的参数指令。

将该目录模块安装到python中;执行:python setup.py install ,此后将会复制相关文件至python安装路径下的Lib/site-packages下,

如上示例将会在该路径下产生:hello.py hello.pyc Hell-1.0-pyx.x.egg-info文件;在使用的时候直接:import hello即可使用。

在上述情况的基础上打包,再使用sdist命令(用于源码发布的形式)

执行:python setup.py sdist ,将产生两个目录build、dist以及MANIFEST列表文件,build下为中间文件可不用,dist下会打包成一个压缩文件,如:Hello-1.0.zip;事实上,该压缩文件内部包含之前的文件以及PKG-INFO的描述文件,这个时候该压缩文件就可以分发给用户;