PyInstaller and Python3.6 - Tuple Index

11,416

Solution 1

Pyinstaller doesn't support Python 3,6 yet. You could revert to Python 3.5, or try the cx_Freeze solution mentioned ... not sure what it does though, I think it replaces it.

Solution 2

I run into the same problem with python 3.6 and pyinstaller, and have used for the first time cx_Freeze. It worked like a charm!

Setup.py contents:

import cx_Freeze
exe = [cx_Freeze.Executable("downloads_folder.py")]
cx_Freeze.setup( name = "downloads",
                version = "1.0",
                options = {"build_exe": {"packages": ["errno", "os", "re", "stat", "subprocess","collections","pprint","shutil", "humanize","pycallgraph"], "include_files": []}},
                executables = exe)

Start cmd in the directory where setup.py is, and run the following command: python setup.py build.

The executable will be found in the build directory created by cx_Freeze run.

Share:
11,416

Related videos on Youtube

Simulacrum
Author by

Simulacrum

Updated on September 15, 2022

Comments

  • Simulacrum
    Simulacrum about 1 year

    I wrote a little Python program and most of the people who are going to run it will be Windows users. I tried to use pyinstaller and py2exe on 2 different devices, one with Windows and the other with arch-linux.

    I reinstalled it more than once, using the pip3 install pyinstaller --no-cache

    I always get the same error:

        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
    

    So, in that case, I just used a testscript containing:

    #!/usr/bin/env  python3.6
    print("hello world")
    

    to make sure there is no problem with the imports and so on.