PyInstaller "ValueError: source code string cannot contain null bytes"
PyInstaller "ValueError: source code string cannot contain null bytes"
在具有和不具有管理员权限的 cmd 中执行命令 pyinstaller main.py
时,我得到 ValueError: source code string cannot contain null bytes
。
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
我尝试使用 Notepad++ 从我的代码中删除 NULL 字符,并尝试重新安装 pyinstaller,但问题仍然存在。
我明白了。 pyinstaller
似乎与最新版本的 Python 3
(截至 2020 年 5 月 24 日)不兼容。我卸载了 Python 3.8.3 并安装了 Python 3.7.7,安装了我在 main.py
中使用的所有库并且它工作了!如此简单的解决方案。
在具有和不具有管理员权限的 cmd 中执行命令 pyinstaller main.py
时,我得到 ValueError: source code string cannot contain null bytes
。
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
我尝试使用 Notepad++ 从我的代码中删除 NULL 字符,并尝试重新安装 pyinstaller,但问题仍然存在。
我明白了。 pyinstaller
似乎与最新版本的 Python 3
(截至 2020 年 5 月 24 日)不兼容。我卸载了 Python 3.8.3 并安装了 Python 3.7.7,安装了我在 main.py
中使用的所有库并且它工作了!如此简单的解决方案。