打包编译Python项目
程序员文章站
2024-01-03 10:58:04
# coding: utf-8"""打包Python项目将此文件与编译项目单独放到指定目录"""import osimport shutilimport compileallfrom pathlib import Path# Python版本versions = ".cpython-36"pycache = "__pycache__"# 打包后项目路径build_dir = "build"# 项目目录root = os.getcwd()print("正在编译文件,请等待....
# coding: utf-8
"""
打包Python项目
将此文件与编译项目单独放到指定目录
"""
import os
import shutil
import compileall
from pathlib import Path
# Python版本
versions = ".cpython-36"
pycache = "__pycache__"
# 打包后项目路径
build_dir = "build"
# 项目目录
root = os.getcwd()
print("正在编译文件,请等待...")
# 编译
compileall.compile_dir(root)
# 绝对路径
build = Path(root, build_dir)
# 如果文件存在直接删除
if build.exists():
print("正在移除build目录,请等待...")
shutil.rmtree(build)
print("正在复制文件,请等待...")
# 复制文件到build目录
shutil.copytree(root, build)
# 开始遍历文件
for root, dirs, files in os.walk(build):
# root 表示当前正在访问的文件夹路径
# dirs 表示该文件夹下的子目录名list
# files 表示该文件夹下的文件list
# 遍历文件
for f in files:
src = os.path.join(root, f)
if f.endswith(".py"):
os.remove(src)
elif f.endswith(".pyc"):
upper_dir = root.replace(pycache, "")
dst = os.path.join(upper_dir, f.replace(versions, ""))
shutil.copy(src, dst)
for root, dirs, files in os.walk(build): # 移除缓存文件夹
print("正在移除缓存文件,请等待...")
if root.endswith(pycache):
shutil.rmtree(root)
print("打包完成,请查看目录:" + str(build))
本文地址:https://blog.csdn.net/weixin_44623010/article/details/110430394