PyInstaller ValueError: строка исходного кода не может содержать нулевые байты

Я получаю ValueError: source code string cannot contain null bytes при выполнении команды pyinstaller main.py в cmd как с правами администратора, так и без них.

Traceback (most recent call last):
  File "c:\users\User\appdata\local\programs\python\python38\lib\runpy.py", line 192, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "c:\users\User\appdata\local\programs\python\python38\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Users\User\AppData\Local\Programs\Python\Python38\Scripts\pyinstaller.exe\__main__.py", line 7, in <module>
  File "c:\users\User\appdata\local\programs\python\python38\lib\site-packages\PyInstaller\__main__.py", line 114, in run
    run_build(pyi_config, spec_file, **vars(args))
  File "c:\users\User\appdata\local\programs\python\python38\lib\site-packages\PyInstaller\__main__.py", line 65, in run_build
    PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
  File "c:\users\User\appdata\local\programs\python\python38\lib\site-packages\PyInstaller\building\build_main.py", line 734, in main
    build(specfile, kw.get('distpath'), kw.get('workpath'), kw.get('clean_build'))
  File "c:\users\User\appdata\local\programs\python\python38\lib\site-packages\PyInstaller\building\build_main.py", line 681, in build
    exec(code, spec_namespace)
  File "C:\Users\User\OneDrive\Pulpit\CODE\Python 3\PyGame Games\Game Of Pong\main.spec", line 30, in <module>
    coll = COLLECT(exe,
  File "c:\users\User\appdata\local\programs\python\python38\lib\site-packages\PyInstaller\building\api.py", line 698, in __init__
    self.__postinit__()
  File "c:\users\User\appdata\local\programs\python\python38\lib\site-packages\PyInstaller\building\datastruct.py", line 160, in __postinit__
    self.assemble()
  File "c:\users\User\appdata\local\programs\python\python38\lib\site-packages\PyInstaller\building\api.py", line 732, in assemble
    fnm = checkCache(fnm, strip=self.strip_binaries,
  File "c:\users\User\appdata\local\programs\python\python38\lib\site-packages\PyInstaller\building\utils.py", line 197, in checkCache
    cache_index = load_py_data_struct(cacheindexfn)
  File "c:\users\User\appdata\local\programs\python\python38\lib\site-packages\PyInstaller\utils\misc.py", line 233, in load_py_data_struct
    return eval(f.read())
ValueError: source code string cannot contain null bytes

Я попытался удалить символы NULL из своего кода с помощью Notepad ++, и я попытался переустановить pyinstaller, но проблема все еще сохраняется.


person Pilleow    schedule 19.05.2020    source источник
comment
Вы пробовали конвертировать в UTF-8?   -  person kaktus_car    schedule 19.05.2020
comment
Да, я преобразовал свой main.py код в UTF-8, и он не сработал, возникает та же ошибка.   -  person Pilleow    schedule 19.05.2020
comment
Может быть, просто Python 3.8 вызывает некоторые проблемы, я сомневаюсь ... Надеюсь, кто-то сможет помочь   -  person kaktus_car    schedule 19.05.2020
comment
вы пробовали это с помощью простого hello-world main.py?   -  person Vikramaditya Gaonkar    schedule 19.05.2020
comment
Ага, попробовал с простым print("Hello World") и выскочила та же ошибка. Похоже, проблема в компиляторе, а не в моей программе (я также переустановил последнюю версию Python 3, безрезультатно).   -  person Pilleow    schedule 21.05.2020


Ответы (1)


Я понял. Похоже, pyinstaller несовместим с последней версией Python 3 (по состоянию на 24.05.2020). Я удалил Python 3.8.3, установил Python 3.7.7, установил все библиотеки, которые использовал в main.py, и это сработало! Такое простое решение.

person Pilleow    schedule 24.05.2020