Библиотека Ezdxf: Как изменить расположение шаблонов \ __ init__.py в getstream? - PullRequest
1 голос
/ 02 июля 2019

Я создаю настольную программу с PyQt5, которая генерирует файлы DXF. Для создания файла DXF я использую библиотеку EZDXF. Когда я запускаю скрипт, ошибка не появляется. Однако после компиляции программы с помощью pyinstaller и запуска программы я получаю сообщение об ошибке:

    "Traceback (most recent call last):
    File "Outline Generator.py", line 324, in generateDXFfile
    File "DXFgenerator_data_class.py", line 23, in __init__
    File "DXFgenerator_data_class.py", line 44, in loadData
    File "site-packages\ezdxf\filemanagement.py", line 42, in new
    File "site-packages\ezdxf\drawing.py", line 390, in new
    File "site-packages\ezdxf\templates\__init__.py", line 37, in getstream
    FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\User\\AppData\\Local\\Temp\\_MEI119642\\templates\\AC1024.dxf'"

Я нашел файл 'templates' в данных библиотеки ezdxf, поместил его в то же место, что и программа, и добавил изменение местоположения шаблонов в коде командой ezdxf.options.template_dir из официальной документации, например:

path_files = os.path.dirname(os.path.abspath(__file__))
work_dir = path_files + '\\templates\\'
for sample in self.samples:
    ezdxf.options.template_dir = work_dir
    dwg = ezdxf.new(dxfversion='AC1024')
    msp = dwg.modelspace()
    dwg.layers.new(name='04 Foil cutout 165W', dxfattribs={'linetype': 'Continuous', 'color': 1, 'lineweight': 0.00})
    dwg.layers.new(name='02_markings', dxfattribs={'linetype': 'Continuous', 'color': 6, 'lineweight': 0.00})
    dwg.layers.new(name='05 allignment', dxfattribs={'linetype': 'Continuous', 'color': 3, 'lineweight': 0.00})
...