123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- from setuptools import setup, find_packages
- from setuptools.command.build_py import build_py
- from setuptools.command.install import install
- import compileall
- import os
- import sys
- import shutil
- from pathlib import Path
- compileDirs=['common','behavior']
- class CustomBuildPy(build_py):
- def run(self):
- # 获取当前 Python 版本信息
- py_version = f".cpython-{sys.version_info.major}{sys.version_info.minor}"
- for dir in compileDirs:
- for root,_,subFiles in os.walk(dir):
- compileall.compile_dir(root, force=True)
- for file in subFiles:
- if file.endswith('.pyc'):
- pyc_path = os.path.join(root, file)
- new_File = file.replace(py_version, '')
- new_path=os.path.join(Path(root).parent,new_File)
- shutil.move(pyc_path, new_path)
- super().run()
- class InstallCommand(install):
- def run(self):
- super().run()
- # Remove all .py files from the installed package
- # 若用于开发,可查看导入的自定义package 则注释本代码段
- # 若用于部署交付,可应用本代码
- # for root, _, files in os.walk(self.install_lib):
- # for file in files:
- # if file.endswith('.py'):
- # os.remove(os.path.join(root, file))
- setup(
- name='dataAnalysisBehavior',
- # version='1.2.202406281546',
- version='1.2.202505131730',
- description='Data Analysis Behavior Package', # 描述信息
- author='Xie Zhou Yang', # 作者
- packages=find_packages(),
- cmdclass={
- 'build_py': CustomBuildPy,
- 'install': InstallCommand,
- },
- package_data={
- 'behavior': ['*.pyc'],
- 'common': ['*.pyc']
- },
- exclude_package_data={'': ['*.py']}
- )
- # 获取 setup.py 所在的绝对路径
- setup_dir = os.path.abspath(os.path.dirname(__file__))
- # 编译打包后,删除pyc后缀文件
- for root, _, files in os.walk(setup_dir):
- for file in files:
- if file.endswith('.pyc') or file.endswith('.c'):
- print(os.path.join(root, file))
- os.remove(os.path.join(root, file))
|