PyQT [và người anh em nguồn mở PySide] là một liên kết QT đa nền tảng tuyệt vời cho python, nhưng nó không phải là giải pháp ma thuật để vận chuyển ứng dụng của bạn cho tất cả nền tảng mà không thực hiện bất kỳ bảo trì đóng gói/cài đặt nào. Tôi nghĩ có lẽ bạn đang mong đợi một số phép thuật.
QT là thư viện đa nền tảng được viết bằng C++. Điều đó có nghĩa, bạn có thể viết C++ hoặc Python (hoặc ngôn ngữ khác với mã liên kết) một lần, và tạo một "cửa sổ" (một biểu mẫu, một hộp thoại, một cái gì đó trên màn hình) và điền nó với các nút điều khiển (nút và tất cả) và không phải đối phó với sự khác biệt nền tảng về cách các nút được tạo trong Windows, Linux và trên Mac OS X.
Bởi vì nó là một thư viện, nó có thể được đóng gói theo nhiều cách. Nó có thể được "liên kết tĩnh" (được tích hợp vào tệp nhị phân/ứng dụng của bạn) hoặc "liên kết động" (được gọi là DLL trong cửa sổ, thư viện được chia sẻ hoặc trên unix/linux hoặc dưới dạng khung, trong mac os x). Nó không phải luôn luôn "cài đặt" trên máy tính, trừ khi nó là một thư viện được chia sẻ.
Ngay cả khi nó được "cài đặt" vào máy tính, nhiều phiên bản có thể tồn tại trên máy tính đó, và do đó, không phải là một tiện ích mở rộng cho máy tính của bạn. chương trình) trên máy tính của bạn.
Nếu bạn sử dụng các ràng buộc Python cho QT, thì gói cài đặt cho ứng dụng của bạn cần bao gồm các tệp nhị phân của ràng buộc QT (phần mở rộng python), môi trường chạy Python cơ bản bao gồm Python thực thi và thư viện cơ bản, và mã nguồn của chương trình của bạn . Có thể đóng gói hầu hết điều này thành một "bó" duy nhất. Ví dụ, trên Mac OS X, tất cả điều này có thể dễ dàng được đưa vào một gói ".app" và trên Windows và Linux, tôi tin rằng có các công cụ đóng gói và cài đặt có thể giúp bạn thực hiện việc này một cách dễ dàng.
Mặc dù bạn chỉ cần viết mã giao diện người dùng cho ứng dụng của mình một lần, bạn sẽ không có khả năng gửi ứng dụng trên cả ba nền tảng chính cùng một lúc, mà không cần làm ít nhất xây dựng trình cài đặt hoặc bao bì, riêng biệt cho mỗi nền tảng. Người dùng mong muốn tải xuống gói cài đặt/cài đặt cho Windows hoặc Mac OS X và có lẽ đối với Unix/Linux, nó phụ thuộc nhiều hơn vào phân phối bạn cài đặt.
Update thanks to AdamW for this nokia link providing deployment information
Cả hai câu trả lời hiện nay bị bỏ quên để cung cấp liên kết này vì vậy tôi sẽ: http://doc.qt.nokia.com/4.7-snapshot/deployment.html Nó chi tiết làm thế nào để triển khai (và một số biên dịch các cài đặt bạn có thể cần) trên tất cả các nền tảng. Nhưng nó vẫn yêu cầu biên dịch trên mọi nền tảng mà bạn muốn chạy nó. –
Bạn đang bình luận về py2exe, có cái gì đó tương tự tồn tại cho Linux? –
@ David: Tôi có nghĩa là các thư viện (mà cần phải được biên soạn hoặc tải xuống cho mỗi nền tảng), nhưng có bạn là chính xác :) –