Скрипт Meshlab работает с Python venv, но не после pyinstaller
У меня есть простой скрипт Python
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)
Он отлично работает с интерпретатором Python 3.9.6 в виртуальной среде, но когда я упаковываю его с помощью pyinstaller (также установленного в venv), чтобы сделать из него исполняемый файл Windows, я получаю эту ошибку, когда запускаю .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 отлично распознает мой файл .xyz из Python, но не тогда, когда тот же сценарий заключен в исполняемый файл Windows?
ИЗМЕНИТЬ Это также происходит, когда я использую фиксированное имя файла для моего файла .xyz, а не передаю его в командной строке, или даже если я использую файл .ply для ввода. Версия моего скрипта .exe не распознает стандартные типы файлов MeshLab.
1 ответ
Я смог заставить это работать, используя cx_Freeze вместо pyinstaller.