2017-01-10 6 views
5

나는 약간의 Python 프로그램을 작성했으며, 실행하려는 사람들은 대부분 Windows 사용자가 될 것이다. pyinstaller와 py2exe를 2 개의 다른 장치에 사용하려고했습니다. 하나는 Windows이고 다른 하나는 arch-linux입니다.PyInstaller and Python3.6 - 튜플 인덱스

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 

그래서,이 경우에, 난 그냥 testscript을 사용 :

나는

내가 항상 같은 오류가 --no-캐시 pyInstaller 중에를 설치 pip3을 사용하여 여러 번 더 다시 설치 다음을 포함하는

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

수입품 등에 문제가 없는지 확인하십시오.

+1

"파이썬 3.6은 아직 지원되지 않습니다." https://github.com/pyinstaller/pyinstaller/issues/2286 – davedwards

+0

글쎄, 빠른 답변 주셔서 감사합니다. 슬프게도, 내 Windows 컴퓨터에서 pyinstaller.exe를 cmd에 입력하면 프로세스가 생성되지 않습니다. 이 문제를 해결하기 위해 노력하겠습니다. https://stackoverflow.com/questions/31808180/installing-pyinstaller-via-pip-leads-to-failed-to-create-process 여기 해결책이있는 것 같습니다. – Simulacrum

답변

2

python 3.6 및 pyinstaller에서 같은 문제가 발생하여 처음으로 cx_Freeze에 사용했습니다. 그것은 매력처럼 일했습니다!

Setup.py 내용 : setup.py이 디렉토리에

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) 

시작 cmd를 다음 명령을 실행 파이썬은을 구축 할있는 setup.py.

실행 파일은 cx_Freeze 실행으로 생성 된 빌드 디렉토리에서 찾을 수 있습니다.

0

여기도 같고 새로운 것이고 당신과 같은 문제가 있습니다. 나는 약 6 시간 동안 붙어서 모든 것을 시도했다. 마지막으로 나는 cx_freeze도 설치했고 작동했습니다.

pip install cx_freeze

3

Pyinstaller는 아직 Python 3,6을 지원하지 않습니다. 파이썬 3.5로 돌아가거나 언급 된 cx_Freeze 솔루션을 사용해 볼 수 있습니다 ...하지만 그것이 무엇을하는지 확실하지 않습니다. 나는 그것을 대체한다고 생각합니다.