from distutils.core import setup
from Cython.Build import cythonize
import os
import shutil
"""
代码编译成.pyd
python compile_pyd.py build_ext --inplace
"""
file_dir = r'D:\Water_level_gauge\pack\Package\1'
save_dir = r'D:\Water_level_gauge\pack\Package' # 编译后保存的文件地址
os.makedirs(save_dir, exist_ok=True)
# 编译
compile_files = []
for root, dirs, files in os.walk(file_dir):
for file in files:
if (file.split('.')[-1] == 'py') and (file != "__init__.py"):
compile_files.append(os.path.join(root, file))
print('compile_files:', compile_files)
print('开始编译...')
setup(ext_modules=cythonize(compile_files))
# 移动文件
for root, dirs, files in os.walk(file_dir):
# 创建文件夹
os.makedirs(os.path.join(save_dir, root), exist_ok=True)
# 移动 .pyd 文件,删除 .c 文件
for file in files:
if file.split('.')[-1] == 'pyd':
shutil.move(os.path.join(root, file), os.path.join(save_dir, root, file))
print(f'移动文件 {file} 到目录 {os.path.join(save_dir, root)}')
if file == "__init__.py":
shutil.copy(os.path.join(root, file), os.path.join(save_dir, root, file))
if file.split('.')[-1] == 'c':
os.remove(os.path.join(root, file))
print(f'删除文件 {os.path.join(root, file)}')
对python脚本加密成pyd
最新推荐文章于 2024-06-02 21:37:05 发布