2013-07-11 45 views
12

Gần đây tôi đã viết một chương trình khá đơn giản cho ông của tôi bằng Python với GUI từ Tkinter, và nó hoạt động rất tốt cho những gì anh ta sẽ sử dụng nó. Tuy nhiên, có, tất nhiên, cửa sổ đầu ra giao diện điều khiển xấu xí. Tôi đã loại bỏ thành công nó bằng cách đơn giản thay đổi phần mở rộng của tập tin từ .py thành .pyw. Khi tôi đóng băng nó bằng PyInstaller, nó lại xuất hiện trở lại! Có cách nào để tôi sửa lỗi này không?Thoát khỏi giao diện điều khiển khi đóng băng các chương trình Python bằng Pyinstaller

Xin cảm ơn trước.

+0

liên quan: [Python - làm thế nào tôi có thể ẩn màn hình nhắc lệnh của cửa sổ khi tập lệnh đang chạy?] (Http://stackoverflow.com/q/24799155/4279) – jfs

Trả lời

30

Nếu bạn muốn ẩn cửa sổ giao diện điều khiển, here là tài liệu: này là làm thế nào bạn sử dụng --noconsole tùy chọn

python pyinstaller.py --noconsole yourscript.py 

Nếu bạn cần giúp đỡ sử dụng PyInstaller để đến điểm mà bạn cần phải sử dụng tùy chọn --noconsolehere là một hướng dẫn đơn giản để đến đó.

+0

Dù sao tôi vẫn chưa in bất kỳ thứ gì vào cửa sổ bảng điều khiển, vì vậy điều này không hữu ích. Cảm ơn bạn đã cố gắng. – dfreeze

+0

"có, tất nhiên, cửa sổ đầu ra giao diện điều khiển xấu xí" bạn có nghĩa là bạn muốn đóng nó? hoặc ngăn chặn nó mở? nếu vậy tôi đã hiểu nhầm – Stephan

+0

vâng, đó là ý của tôi. Sẽ 'os.system ('thoát')' làm việc, hoặc sẽ chỉ đóng chương trình? – dfreeze

7

Chỉ cần thêm --noconsole cờ:

$ python pyinstaller.py --noconsole yourprogram.py 

Bạn có thể muốn sử dụng --onefile là tốt, mà tạo ra một tập tin duy nhất .exe thay vì một thư mục.

+0

Tôi đang chạy PyInstaller 2.0, có nghĩa là tôi chỉ đơn giản là gõ 'python pyinstaller.py MYCODE.pyw' vào cmd trong thư mục chính xác và nó làm phần còn lại cho tôi, bao gồm tạo tệp' .spec'. Tôi có cần phải ngắt chương trình ở đâu đó và thực hiện dòng này không? Nếu vậy, làm thế nào? – dfreeze

+0

Cảm ơn bạn đã đề xuất --onefile @Blender. $ python pyinstaller.py --noconsole --onefile yourprogram.py –

3

Đây là một trong những điều đầu tiên xuất hiện trong tìm kiếm thông tin này, vì vậy tôi muốn thêm những gì tôi đã tìm thấy cho bản phát hành 3.2 của pyinstaller. Nếu bạn đã đóng gói tập lệnh của mình bằng cách chạy

pyinstaller --onefile your_script.py 

hoặc tương tự, bạn có thể chỉnh sửa tệp your_script.spec để thoát khỏi bảng điều khiển.

exe = EXE(pyz, 
      a.scripts, 
      a.binaries, 
      a.zipfiles, 
      a.datas, 
      name='main', 
      debug=False, 
      strip=False, 
      upx=True, 
      console=True) 

Chỉ cần thay đổi giá trị bảng điều khiển thành False. Sau đó chạy:

pyinstaller your_script.spec 

Ngoài ra, nếu bạn thực hiện thay đổi mã, hãy chạy lệnh trên để chúng được phản ánh trong your_script.exe. Tôi đã thấy điều này hữu ích để gỡ lỗi các vấn đề khác.

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