我有一个简单的Python Mesher.py,它在命令行上使用Windows格式的文件名字符串,并在输入点云(.xyz文件)上运行MeshLab:
import sys
from pathlib import Path
import pymeshlab as ml
xyz_file = Path(sys.argv[1]).as_posix()
output_file = Path(sys.argv[2]).as_posix()
ms = ml.MeshSet()
ms.load_new_mesh(xyz_file)
ms.load_filter_script('filters.mlx')
ms.apply_filter_script()
ms.save_current_mesh(output_file)它在虚拟环境中的Python3.9.6解释器上运行良好,但是当我用pyinstaller (也安装在venv上)将它打包以生成一个.exe可执行文件时,当我使用相同的命令行参数运行时,我会得到这个错误:
Traceback (most recent call last):
File "Mesher.py", line 9, in <module>
ms.load_new_mesh(xyz_file)
pymeshlab.pmeshlab.PyMeshLabException: Unknown format for load: xyz
[24580] Failed to execute script Mesher为什么pymeshlab可以从Python中识别我的.xyz文件,但是当相同的脚本被包装在一个Windows可执行文件中时却不能识别?
当我为我的文件使用一个固定的文件名而不是将它传递到命令行,或者即使我使用一个.ply文件作为输入时,也会发生这种情况。我的脚本的.exe版本不识别标准的MeshLab文件类型。
发布于 2021-07-19 17:52:46
我能够通过使用cx_Freeze而不是pyinstaller来实现这个目标。
https://stackoverflow.com/questions/68322802
复制相似问题