Terdapat game.py yang ditulis dalam pakej saya, dan kemudian saya menggunakan pyinstaller untuk membungkusnya, dan situasi berikut berlaku:
C:\package>pyinstaller -F game.py
166 INFO: PyInstaller: 3.2.1
166 INFO: Python: 3.6.1
166 INFO: Platform: Windows-10-10.0.14393-SP0
166 INFO: wrote C:\package\game.spec
182 INFO: UPX is not available.
182 INFO: Extending PYTHONPATH with paths
['C:\package', 'C:\package']
182 INFO: checking Analysis
182 INFO: Building Analysis because out00-Analysis.toc is non existent
182 INFO: Initializing module dependency graph...
199 INFO: Initializing module graph hooks...
202 INFO: Analyzing base_library.zip ...
Traceback (most recent call last):
File "C:\Python36\Scripts\pyinstaller-script.py", line 11, in <module>
load_entry_point('PyInstaller==3.2.1', 'console_scripts', 'pyinstaller')()
File "C:\Python36\lib\site-packages\pyinstaller-3.2.1-py3.6.egg\PyInstaller\__main__.py", line 90, in run
run_build(pyi_config, spec_file, **vars(args))
File "C:\Python36\lib\site-packages\pyinstaller-3.2.1-py3.6.egg\PyInstaller\__main__.py", line 46, in run_build
PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
File "C:\Python36\lib\site-packages\pyinstaller-3.2.1-py3.6.egg\PyInstaller\building\build_main.py", line 788, in main
build(specfile, kw.get('distpath'), kw.get('workpath'), kw.get('clean_build'))
File "C:\Python36\lib\site-packages\pyinstaller-3.2.1-py3.6.egg\PyInstaller\building\build_main.py", line 734, in build
exec(text, spec_namespace)
File "<string>", line 16, in <module>
File "C:\Python36\lib\site-packages\pyinstaller-3.2.1-py3.6.egg\PyInstaller\building\build_main.py", line 212, in __init__
self.__postinit__()
File "C:\Python36\lib\site-packages\pyinstaller-3.2.1-py3.6.egg\PyInstaller\building\datastruct.py", line 161, in __postinit__
self.assemble()
File "C:\Python36\lib\site-packages\pyinstaller-3.2.1-py3.6.egg\PyInstaller\building\build_main.py", line 317, in assemble
excludes=self.excludes, user_hook_dirs=self.hookspath)
File "C:\Python36\lib\site-packages\pyinstaller-3.2.1-py3.6.egg\PyInstaller\depend\analysis.py", line 560, in initialize_modgraph
graph.import_hook(m)
File "C:\Python36\lib\site-packages\pyinstaller-3.2.1-py3.6.egg\PyInstaller\lib\modulegraph\modulegraph.py", line 1509, in import_hook
source_package, target_module_partname, level)
File "C:\Python36\lib\site-packages\pyinstaller-3.2.1-py3.6.egg\PyInstaller\lib\modulegraph\modulegraph.py", line 1661, in _find_head_p
ackage
target_module_headname, target_package_name, source_package)
File "C:\Python36\lib\site-packages\pyinstaller-3.2.1-py3.6.egg\PyInstaller\depend\analysis.py", line 209, in _safe_import_module
module_basename, module_name, parent_package)
File "C:\Python36\lib\site-packages\pyinstaller-3.2.1-py3.6.egg\PyInstaller\lib\modulegraph\modulegraph.py", line 2077, in _safe_import
_module
module_name, file_handle, pathname, metadata)
File "C:\Python36\lib\site-packages\pyinstaller-3.2.1-py3.6.egg\PyInstaller\lib\modulegraph\modulegraph.py", line 2167, in _load_module
self._scan_code(m, co, co_ast)
File "C:\Python36\lib\site-packages\pyinstaller-3.2.1-py3.6.egg\PyInstaller\lib\modulegraph\modulegraph.py", line 2585, in _scan_code
module, module_code_object, is_scanning_imports=False)
File "C:\Python36\lib\site-packages\pyinstaller-3.2.1-py3.6.egg\PyInstaller\lib\modulegraph\modulegraph.py", line 2831, in _scan_byteco
de
global_attr_name = get_operation_arg_name()
File "C:\Python36\lib\site-packages\pyinstaller-3.2.1-py3.6.egg\PyInstaller\lib\modulegraph\modulegraph.py", line 2731, in get_operatio
n_arg_name
return module_code_object.co_names[co_names_index]
IndexError: tuple index out of range
Traceback menunjukkan bahawa ia tidak sepatutnya menjadi masalah dengan game.py saya. apa yang berlaku
Versi terbaharu pyinstaller 3.2.1 dipasang, dan Python ialah versi 3.6.
Python 3.6: Ralat Indeks: indeks tuple di luar julat, disebut di atas
Iaitu, pyinstaller3.2.1 tidak menyokong Python 3.6.
Adalah disyorkan bahawa pemasang python tidak menggunakan versi python terkini, sekurang-kurangnya versi di bawah python3.5 boleh dilaksanakan.
Sokongan untuk 3.6 belum dikeluarkan lagi, tetapi ia boleh dipasang secara manual
https://github.com/pyinstalle... Selepas memuat turun zip, tarik keluar PyInstaller. Padam folder python/Lib/site-packages/PyInstaller dan letakkan PyInstaller yang dinyahmampat di dalamnya dan ia sepatutnya OK. #_#