教你用python 编译pyc文件,一键生成压缩包
pyc文件是py文件编译后生成的字节码文件(byte code)。
pyc文件经过python解释器最终会生成机器码运行。
所以pyc文件是可以跨平台部署的,类似Java的.class文件。
一般py文件改变后,都会重新生成pyc文件。
对于为什么要生成pyc文件,主要是不想把源代码暴露出来。
这里教你如何将python工程一键生成可以部署pyc压缩包。
#!/bin/bash
version="0.0.1"
NAME="project-name"
PYTHON_HOME="/root/anaconda3/envs/nlp/bin"
APP_HOME="/path/"$NAME
OUT_HOME="/path_out/"
rm -rf ${APP_HOME}/compile.sh
rm -rf ${APP_HOME}/.git*
mkdir -p ${OUT_HOME}
if [ ! -d $APP_HOME ]; then
echo $APP_HOME "empty!"
else
echo $APP_HOME "not empty! then compile and remove .py"
$PYTHON_HOME/python -O -m compileall $APP_HOME
cd $APP_HOME
find . -name '*.pyc' -exec rename .cpython-36.opt-1 '' {} \;
find . -name '*.pyc' -execdir mv {} .. \;
find . -name '*.py' -type f -print -exec rm {} \;
find . -name '__pycache__' -exec rmdir {} \;
cd ..
if [! -d $NAME-$version]; then
mkdir -p $NAME-$version
fi
cp -r $NAME $NAME-$version
zip -r $OUT_HOME/$NAME-$version.zip "$NAME-$version"
rm -rf $NAME
fi