有的时候,我们需要把代码部署到其他人的服务器上,这个时候就要加密我们的代码。
这里,我们将 py
文件编译成二进制文件。
另外,这种二进制文件是可以反编译过来的,不过,也算是加了一层措施了。
除了加密外,二进制文件运行更快。
参考资料
使用
这里我们编译文件夹,单独的编译文件就不讲了。
默认情况
python3 -m compileall "需要编译的项目目录"
这个会讲 py
文件编译成 pyc
文件,并且把 pyc
文件放在 __pycache__
文件夹中。
但是,如果,你进主文件中运行
python3 ***.pyc
的时候,会出现,你自己创建的文件找不到。
直接运行编译
python3 -m compileall -b "需要编译的项目目录"
这个会在文件目录下,直接翻译 pyc
。
这样可以直接运行
python3 ***.pyc
但是,这个会遗留 py 源文件,所以可以这样执行
find ./ -name "*.py" |xargs rm -rf
find ./ -name "__pycache__" |xargs rm -rf
我一般用
python3 -O -m compileall -b "需要编译的项目目录"
这个可以压缩 pyc
。
另外,如果源文件与编译后的文件同时存在的话,在导入模块时会优先执行源文件中的内容!