2017-01-10 19 views
5

Tôi đã viết một chương trình Python nhỏ và hầu hết những người sẽ chạy nó sẽ là người dùng Windows. Tôi đã cố gắng sử dụng pyinstaller và py2exe trên 2 thiết bị khác nhau, một với Windows và một với arch-linux.PyInstaller và Python3.6 - Chỉ mục Tuple

tôi cài đặt lại nó nhiều hơn một lần, sử dụng PIP3 cài đặt PyInstaller --no-cache

tôi luôn luôn nhận được lỗi tương tự:

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 

Vì vậy, trong trường hợp đó, tôi chỉ sử dụng một testscript có chứa:

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

để đảm bảo không có vấn đề với hàng nhập và cứ tiếp tục như vậy.

+1

Có vẻ như "Python 3.6 chưa được hỗ trợ". https://github.com/pyinstaller/pyinstaller/issues/2286 – davedwards

+0

Vâng, cảm ơn câu trả lời nhanh. Đáng buồn thay, trên máy tính Windows của tôi nó không tạo ra một quá trình khi tôi gõ pyinstaller.exe vào cmd. Tôi sẽ cố gắng để có được điều này cố định, có vẻ là một giải pháp ở đây: https://stackoverflow.com/questions/31808180/installing-pyinstaller-via-pip-leads-to-failed-to-create-process – Simulacrum

Trả lời

2

Tôi chạy cùng một vấn đề với python 3.6 và pyinstaller và đã sử dụng lần đầu tiên cx_Freeze. Nó làm việc như một say mê!

nội dung 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 Start trong thư mục nơi setup.py là, và chạy lệnh sau: python setup.py xây dựng.

Tệp thi hành sẽ được tìm thấy trong thư mục xây dựng được tạo bởi cx_Freeze run.

0

Tương tự ở đây, tôi cũng mới và gặp vấn đề tương tự như bạn. Tôi đã bị mắc kẹt khoảng 6 giờ và đã thử mọi thứ. Cuối cùng tôi cũng đã cài đặt cx_freeze và nó hoạt động

pip install cx_freeze

3

Pyinstaller chưa hỗ trợ Python 3,6. Bạn có thể hoàn nguyên về Python 3.5 hoặc thử giải pháp cx_Freeze được đề cập ... không chắc chắn nó làm gì, tôi nghĩ nó sẽ thay thế nó.

Các vấn đề liên quan