Napisałem mały program w Pythonie, a większość osób, które będą go uruchamiać, będzie użytkownikami systemu Windows. Próbowałem użyć Pyinstallera i py2exe na 2 różnych urządzeniach, jednym z Windows, a drugim z arch-linux.PyInstaller i Python3.6 - Indeks Tuple
I ponownie zainstalowany jest więcej niż jeden raz, używając pip3 zainstalować pyinstaller --no-cache
zawsze uzyskać ten sam błąd:
sudo pyinstaller --windowed --onefile test.py
49 INFO: PyInstaller: 3.2
49 INFO: Python: 3.6.0
50 INFO: Platform: Linux-4.8.13-1-ARCH-x86_64-with-arch
51 INFO: wrote /home/XXXXX/test.spec
52 INFO: UPX is not available.
53 INFO: Extending PYTHONPATH with paths
['/home/XXXXX', '/home/XXXXX']
54 INFO: checking Analysis
54 INFO: Building Analysis because out00-Analysis.toc is non existent
54 INFO: Initializing module dependency graph...
57 INFO: Initializing module graph hooks...
58 INFO: Analyzing base_library.zip ...
Traceback (most recent call last):
File "/usr/bin/pyinstaller", line 11, in <module>
load_entry_point('PyInstaller==3.2', 'console_scripts', 'pyinstaller')()
File "/usr/lib/python3.6/site-packages/PyInstaller/__main__.py", line 90, in run
run_build(pyi_config, spec_file, **vars(args))
File "/usr/lib/python3.6/site-packages/PyInstaller/__main__.py", line 46, in run_build
PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
File "/usr/lib/python3.6/site-packages/PyInstaller/building/build_main.py", line 788, in main
build(specfile, kw.get('distpath'), kw.get('workpath'), kw.get('clean_build'))
File "/usr/lib/python3.6/site-packages/PyInstaller/building/build_main.py", line 734, in build
exec(text, spec_namespace)
File "<string>", line 16, in <module>
File "/usr/lib/python3.6/site-packages/PyInstaller/building/build_main.py", line 212, in __init__
self.__postinit__()
File "/usr/lib/python3.6/site-packages/PyInstaller/building/datastruct.py", line 178, in __postinit__
self.assemble()
File "/usr/lib/python3.6/site-packages/PyInstaller/building/build_main.py", line 317, in assemble
excludes=self.excludes, user_hook_dirs=self.hookspath)
File "/usr/lib/python3.6/site-packages/PyInstaller/depend/analysis.py", line 560, in initialize_modgraph
graph.import_hook(m)
File "/usr/lib/python3.6/site-packages/PyInstaller/lib/modulegraph/modulegraph.py", line 906, in import_hook
q, tail = self._find_head_package(parent, name, level)
File "/usr/lib/python3.6/site-packages/PyInstaller/lib/modulegraph/modulegraph.py", line 990, in _find_head_package
q = self._safe_import_module(head, qname, parent)
File "/usr/lib/python3.6/site-packages/PyInstaller/depend/analysis.py", line 209, in _safe_import_module
module_basename, module_name, parent_package)
File "/usr/lib/python3.6/site-packages/PyInstaller/lib/modulegraph/modulegraph.py", line 1211, in _safe_import_module
module_name, file_handle, pathname, metadata)
File "/usr/lib/python3.6/site-packages/PyInstaller/lib/modulegraph/modulegraph.py", line 1295, in _load_module
self._scan_code(m, co, co_ast)
File "/usr/lib/python3.6/site-packages/PyInstaller/lib/modulegraph/modulegraph.py", line 1460, in _scan_code
self._scan_bytecode_stores(co, m)
File "/usr/lib/python3.6/site-packages/PyInstaller/lib/modulegraph/modulegraph.py", line 1505, in _scan_bytecode_stores
name = co.co_names[oparg]
IndexError: tuple index out of range
Tak więc, w tym przypadku, po prostu użył testscript zawierające:
#!/usr/bin/env python3.6
print("hello world")
, aby upewnić się, że nie ma problemu z importem i tak dalej.
Wygląda tak: "Python 3.6 nie jest jeszcze obsługiwany." https://github.com/pyinstaller/pyinstaller/issues/2286 – davedwards
Cóż, dziękuję za szybką odpowiedź. Niestety, na moim komputerze z systemem Windows nie można utworzyć procesu, gdy piszę plik pyinstaller.exe do cmd. Postaram się to naprawić, wydaje się, że istnieje tu rozwiązanie: https://stackoverflow.com/questions/31808180/installing-pyinstaller-via-pip-leads-to-failed-to-create-process – Simulacrum