欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

打包编译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

相关标签: linux Python

上一篇:

下一篇: