2016-08-10 2 views
0

Я пытаюсь преобразовать свой скрипт python в exe, и все прошло хорошо, пока я не добавил файл версии, он выбросил эту ошибку, и я не знаю, что это значит. Я видел разные сообщения о версии файлов, и я попытался их всех, и я получаю эту ошибку:Как написать файлы версий для pyinstaller 3.2

Traceback (most recent call last): 
File "C:\Users\Afro\AppData\Local\Programs\Python\Python35-32\Scripts\pyinstaller-script.py", line 9, in <module> 
load_entry_point('PyInstaller==3.2', 'console_scripts', 'pyinstaller')() 
File "c:\users\afro\appdata\local\programs\python\python35-32\lib\site-packages\PyInstaller\__main__.py", line 90, in run 
run_build(pyi_config, spec_file, **vars(args)) 
File "c:\users\afro\appdata\local\programs\python\python35-32\lib\site-packages\PyInstaller\__main__.py", line 46, in run_build 
PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs) 
File "c:\users\afro\appdata\local\programs\python\python35-32\lib\site-packages\PyInstaller\building\build_main.py", line 788, in main 
build(specfile, kw.get('distpath'), kw.get('workpath'), kw.get('clean_build')) 
File "c:\users\afro\appdata\local\programs\python\python35-32\lib\site-packages\PyInstaller\building\build_main.py", line 734, in build 
exec(text, spec_namespace) 
File "<string>", line 26, in <module> 
File "c:\users\afro\appdata\local\programs\python\python35-32\lib\site-packages\PyInstaller\building\api.py", line 407, in __init__ 
self.__postinit__() 
File "c:\users\afro\appdata\local\programs\python\python35-32\lib\site-packages\PyInstaller\building\datastruct.py", line 178, in __postinit__ 
self.assemble() 
File "c:\users\afro\appdata\local\programs\python\python35-32\lib\site-packages\PyInstaller\building\api.py", line 496, in assemble 
versioninfo.SetVersion(tmpnm, self.versrsrc) 
File "c:\users\afro\appdata\local\programs\python\python35-32\lib\site-packages\PyInstaller\utils\win32\versioninfo.py", line 557, in SetVersion 
win32api.UpdateResource(hdst, pefile.RESOURCE_TYPE['RT_VERSION'], 1, vs.toRaw()) 
File "c:\users\afro\appdata\local\programs\python\python35-32\lib\site-packages\PyInstaller\utils\win32\versioninfo.py", line 160, in toRaw 
nm = pywintypes.Unicode(u'VS_VERSION_INFO') 
TypeError: argument 1 (impossible<bad format char>) 

и вот моя версия файла:

VSVersionInfo(
    ffi=FixedFileInfo(
    filevers=(1, 0, 0, 0), 
    prodvers=(1, 0, 0, 0), 
    mask=0x3f, 
    flags=0x0, 
    OS=0x40004, 
    fileType=0x1, 
    subtype=0x0, 
    date=(0, 0) 
    ), 
    kids=[ 
    StringFileInfo(
     [ 
    StringTable(
     u'040904B0', 
     [StringStruct(u'CompanyName', u'getSERIES'), 
     StringStruct(u'FileDescription', u'get it'), 
     StringStruct(u'FileVersion', u'6.1.7601.17514 (win7sp1_rtm.101119-1850)'), 
     StringStruct(u'InternalName', u'getSERIES'), 
     StringStruct(u'LegalCopyright', u'HA corporation. All rights reserved.'), 
     StringStruct(u'OriginalFilename', u'getSERIES.Exe'), 
     StringStruct(u'ProductName', u'getSERIES'), 
     StringStruct(u'ProductVersion', u'1, 0, 0, 0')]) 
    ]), 
    VarFileInfo([VarStruct(u'Translation', [1033, 1200])]) 
    ] 
) 

ответ

1

Ваша версия файла должно быть достаточно , Проблема заключается в версии versioninfo.py PyInstaller, которая, вероятно, в настоящее время не поддерживает Python3.
В качестве простого обходного пути вы можете попробовать использовать редактор ресурсов (например, http://www.codeproject.com/Articles/37133/Simple-Version-Resource-Tool-for-Windows), чтобы добавить информацию о версии в ваше приложение.
Дополнительная информация по теме pyinstaller: https://github.com/pyinstaller/pyinstaller/issues/1347.

Смежные вопросы