2013-07-28 57 views
19

Làm cách nào để chuyển đổi ứng dụng Python của tôi thành .exe? Tôi đã thực hiện một chương trình với tkinter và tự hỏi làm cách nào để người khác có thể sử dụng. Tôi sử dụng Python 3.3. Tôi đã tìm kiếm một chút nhưng không thể tìm thấy gì cả.Làm cách nào để biên dịch ứng dụng Python 3 thành tệp .exe?

+1

có, nhưng tất cả đều là 2,7 và thấp hơn, tôi sử dụng 3,3 –

+0

Được rồi, nhưng nó vẫn là một câu hỏi rất phổ biến. Câu trả lời của tôi là từ tìm kiếm nhanh trên Google. –

+1

Tôi đã thêm 3 vào tiêu đề của bạn nhưng, thật không may, tôi nghi ngờ câu hỏi của bạn vẫn có thể bị đóng. Chúc may mắn. –

Trả lời

13

cx_Freeze thực hiện việc này nhưng tạo thư mục có nhiều phụ thuộc. py2exe bây giờ thực hiện điều này và, với tùy chọn --bundle-files 0, chỉ tạo một EXE, có lẽ là giải pháp tốt nhất cho câu hỏi của bạn.

CẬP NHẬT: Sau khi gặp mô-đun bên thứ ba mà py2exe gặp sự cố "tìm kiếm", tôi đã chuyển sang pyinstaller như kotlet schabowy gợi ý bên dưới. Cả hai đều có tài liệu phong phú và bao gồm .exes bạn có thể chạy với các tham số dòng lệnh, nhưng tôi vẫn chưa biên dịch một tập lệnh mà pyinstaller không thể xử lý mà không cần gỡ lỗi hoặc đầu trầy xước.

Dưới đây là một chức năng tiện đơn giản tôi sử dụng để xây dựng một .exe với giá trị mặc định của tôi từ người phiên dịch (tất nhiên một lô hoặc tương tự sẽ là tốt quá):

import subprocess,os 
def exe(pyfile,dest="",creator=r"C:\Python34\Scripts\pyinstaller.exe",ico=r"C:\my icons\favicon.ico",noconsole=False): 
    insert="" 
    if dest: insert+='--distpath ""'.format(dest) 
    else: insert+='--distpath "" '.format(os.path.split(pyfile)[0]) 
    if ico: insert+=' --icon="{}" '.format(ico) 
    if noconsole: insert+=' --noconsole ' 
    runstring='"{creator}" "{pyfile}" {insert} -F'.format(**locals()) 
    subprocess.check_output(runstring) 
+3

Câu trả lời "Cái gì?", nhưng không phải "Làm thế nào?" – CaffeineConnoisseur

6

Tôi đã tìm thấy PyInstaller để làm việc tốt nhất . Bạn có nhiều tùy chọn ví dụ bạn có thể gói mọi thứ vào một tệp exe.

Tôi thích sử dụng nó cùng với Cython cho tốc độ.

1

Sử dụng Pyinstaller. Sau khi cài đặt, mở terminal trong thư mục chứa dự án của bạn.

  1. $ pyinstaller script1.py script2.py ... (nơi script1, script2, vv là tất cả các kịch bản sử dụng trong dự án của bạn.)

  2. Sau khi lệnh được hoàn tất, mở thư mục dist và nhập vào thư mục con. Ở đó bạn sẽ tìm thấy một tập tin thực thi.

Hy vọng điều đó sẽ hữu ích.