Ошибка операционной системы: [Ошибка 87] Параметр неверен в PyInstaller

#python #python-3.x #pyinstaller

Вопрос:

Я использую Auto Py в Exe для преобразования файла .py в файл .exe. Весь мой код находится в одном файле, но у меня есть отдельный значок (X2P.ico) и 3 файла .txt. В настоящее время я использую Windows 10. Это была команда, сгенерированная с помощью Auto Py в Exe

 pyinstaller --noconfirm --onedir --windowed --icon "C:/Project/X2P.ico" --add-data "C:/Project/AppFinal_Template1.txt;." --add-data "C:/Project/AppFinal_Template2.txt;." --add-data "C:/Project/AppFinal_TemplateNames.txt;."  "C:/Project/X2P_main.py"
 

Но при выполнении приведенной выше команды я получаю следующую ошибку:

 An error occurred while packaging
Traceback (most recent call last):
  File "c:usersharshappdatalocalprogramspythonpython38libsite-packageswin32ctypespywin32pywintypes.py", line 35, in pywin32error
    yield
  File "c:usersharshappdatalocalprogramspythonpython38libsite-packageswin32ctypespywin32win32api.py", line 268, in UpdateResource
    _resource._UpdateResource(
  File "c:usersharshappdatalocalprogramspythonpython38libsite-packageswin32ctypescorecffi_resource.py", line 130, in _UpdateResource
    check_false(
  File "c:usersharshappdatalocalprogramspythonpython38libsite-packageswin32ctypescorecffi_util.py", line 81, in __call__
    self._raise_error(function_name)
  File "c:usersharshappdatalocalprogramspythonpython38libsite-packageswin32ctypescorecffi_util.py", line 92, in _raise_error
    raise exception
OSError: [WinError 87] The parameter is incorrect

 

за которым следует

 During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:usersharshappdatalocalprogramspythonpython38libsite-packagesauto_py_to_exepackaging.py", line 131, in package
    run_pyinstaller()
  File "c:usersharshappdatalocalprogramspythonpython38libsite-packagesPyInstaller__main__.py", line 114, in run
    run_build(pyi_config, spec_file, **vars(args))
  File "c:usersharshappdatalocalprogramspythonpython38libsite-packagesPyInstaller__main__.py", line 65, in run_build
    PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
  File "c:usersharshappdatalocalprogramspythonpython38libsite-packagesPyInstallerbuildingbuild_main.py", line 737, in main
    build(specfile, kw.get('distpath'), kw.get('workpath'), kw.get('clean_build'))
  File "c:usersharshappdatalocalprogramspythonpython38libsite-packagesPyInstallerbuildingbuild_main.py", line 684, in build
    exec(code, spec_namespace)
  File "C:UsersharshAppDataLocalTemptmpoo3n_0lsX2P_main.spec", line 21, in <module>
    exe = EXE(pyz,
  File "c:usersharshappdatalocalprogramspythonpython38libsite-packagesPyInstallerbuildingapi.py", line 450, in __init__
    self.__postinit__()
  File "c:usersharshappdatalocalprogramspythonpython38libsite-packagesPyInstallerbuildingdatastruct.py", line 160, in __postinit__
    self.assemble()
  File "c:usersharshappdatalocalprogramspythonpython38libsite-packagesPyInstallerbuildingapi.py", line 549, in assemble
    icon.CopyIcons(tmpnm, self.icon)
  File "c:usersharshappdatalocalprogramspythonpython38libsite-packagesPyInstallerutilswin32icon.py", line 216, in CopyIcons
    return CopyIcons_FromIco(dstpath, [srcpath])
  File "c:usersharshappdatalocalprogramspythonpython38libsite-packagesPyInstallerutilswin32icon.py", line 159, in CopyIcons_FromIco
    win32api.UpdateResource(hdst, RT_ICON, iconid, data)
  File "c:usersharshappdatalocalprogramspythonpython38libsite-packageswin32ctypespywin32win32api.py", line 268, in UpdateResource
    _resource._UpdateResource(
  File "c:usersharshappdatalocalprogramspythonpython38libcontextlib.py", line 131, in __exit__
    self.gen.throw(type, value, traceback)
  File "c:usersharshappdatalocalprogramspythonpython38libsite-packageswin32ctypespywin32pywintypes.py", line 37, in pywin32error
    raise error(exception.winerror, exception.function, exception.strerror)
win32ctypes.pywin32.pywintypes.error: (87, 'UpdateResource', 'The parameter is incorrect')

Project output will not be moved to output folder
Complete.
 

Пожалуйста, помогите мне устранить эту ошибку

Ответ №1:

Выполните команду из папки, в которой X2P_main.py находится. С помощью приведенной ниже команды

 pyinstaller --noconfirm --onedir --windowed --icon "C:/Project/X2P.ico" --add-data "C:/Project/AppFinal_Template1.txt;." --add-data "C:/Project/AppFinal_Template2.txt;." --add-data "C:/Project/AppFinal_TemplateNames.txt;." X2P_main.py