# -*- coding: utf-8 -*-
import os
import shutil
from distutils.core import setup
from Cython.Build import cythonize
from librosa.util import files
import time
here = os.path.dirname(os.path.abspath(__file__))
time1 = time.time()
tmp_file = os.path.join(here, 'tmp', 'xxx')
build_dir = "build"
build_tmp_dir = os.path.join(build_dir, "temp")
build_dir_tacotron = os.path.join(here,'build', 'xxx')
os.makedirs(build_dir, exist_ok=True)
os.makedirs(build_tmp_dir, exist_ok=True)
def get_py(path, list1):
fileList = os.listdir(path) # 获取path目录下所有文件
for filename in fileList:
pathTmp = os.path.join(path,filename) # 获取path与filename组合后的路径
if os.path.isdir(pathTmp): # 如果是目录
get_py(pathTmp,list1) # 则递归查找
elif filename[-3:].upper() == '.PY':# 如果不是目录,则比较后缀名
list1.append(pathTmp)
py_files = []
get_py(tmp_file, py_files)
print('py_files: ', py_files)
for file in py_files:
print('file: ', file)
setup(ext_modules=cythonize(file, language_level="3"), script_args=["build_ext", "-b", build_dir, "-t", build_tmp_dir])
shutil.copyfile(os.path.join(here, 'tmp', 'run.sh'), os.path.join(here, 'build', 'run.sh'))
shutil.copytree(os.path.join(tmp_file, 'xxx'), os.path.join(build_dir_tacotron, 'xxx'))
print('====so编译完成,耗时{}s!!!===='.format((time.time() - time1) / 1000.0))
需要注意几点:
1、包需要包含 init.py文件
2、非py文件,需要手动复制,或者添加代码