Administrator
Administrator
发布于 2025-08-08 / 2 阅读

docker容器立即启动,并运行python

pymesh库由于对window的兼容性有问题,于是就在ubuntu虚拟机中使用pymesh库,根据官方库:PyMesh/PyMesh:Python 几何处理库,使用docker是最简单方便的,所以在宝塔的docker中,拉去镜像pymesh/pymesh镜像,然后使用下面的命令来直接运行一个容器,并且允许某个python脚本:

docker run -it --rm -v `pwd`:/models pymesh/pymesh python /models/main.py

我的main.py内容如下:

import pymesh
import time
import os

def perform_boolean_operation(main_file, subtract_file, output_file, operation="difference"):
    # 加载网格
    main_mesh = pymesh.load_mesh(main_file)
    subtract_mesh = pymesh.load_mesh(subtract_file)
    
    # 执行布尔操作
    result = pymesh.boolean(main_mesh, subtract_mesh, operation=operation)
    
    # 保存结果
    pymesh.save_mesh(output_file, result)
    print(f"布尔操作完成,结果已保存到 {output_file}")

# 使用示例
if __name__ == "__main__":
    #将当前文件所在的路径作为工作路径
    wordfolder = os.path.dirname(os.path.abspath(__file__))
    os.chdir(wordfolder)
    main_model = "MeshMesh.stl"
    subtract_model = "bar_mesh.stl"
    output_model = "result.obj"
    
    print('开始')
    # 执行布尔减操作
    time0 = time.time()
    perform_boolean_operation(main_model, subtract_model, output_model, operation="difference")
    print(f'完成,耗时:{time.time()-time0}')

需要注意的是,必须要使用os.chdir修改当前工作目录为项目的路径,否则后面的代码会找不到三维模型文件,因为默认是/root路径,而不是所允许的py文件的所在路径。