2012-04-23 47 views
5

Tôi đang sử dụng wxPython từ khoảng 2 năm đối với một số chương trình khoa học nhỏ mà tôi phân phối cho nhiều Đồng nghiệp. Tôi thích wxPython và tôi đã rất quen thuộc với nó nhưng có vài điều khiến tôi phát điên (không phải vì wxPython, thực sự tôi muốn tiếp tục sử dụng nó):Ứng dụng Máy tính để bàn Python

1) Tôi có nhiều người dùng khác nhau Hệ thống vận hành. Tôi biết wxPython là nền tảng chéo nhưng tôi đã không có thần kinh và thời gian để chuyển tất cả các phần mềm nhỏ của tôi (và nhiều hơn nữa sẽ đến) mỗi lần vào các hệ điều hành khác nhau. Đặc biệt là tôi không sử dụng một số trong số họ (Windows7, Mac), vì vậy thật khó cho tôi để giải quyết các vấn đề và yêu cầu của người dùng.

2) Chúng tôi cập nhật phần mềm khá nhiều (vì tất cả các ý tưởng mới đến từ người dùng và chính chúng ta) có nghĩa là để tôi tạo lại tất cả các standalones, tải chúng lên và để người dùng gỡ cài đặt và cài đặt lại. Nasty ...

Tôi đã suy nghĩ đã chuyển sang khung web nhưng có một số vấn đề. Trước tiên, nhiều người dùng muốn sử dụng phần mềm ngoại tuyến của tôi, ví dụ: khi họ đi du lịch hoặc không có internet. Thứ hai, chúng tôi có một số dữ liệu trong một số cơ sở dữ liệu mà KHÔNG BAO GIỜ nên đi trên một máy chủ. Đó là tất cả về bằng sáng chế và sẽ luôn là một cuộc thảo luận, vì vậy tôi muốn có một số chương trình của tôi là một ứng dụng máy tính để bàn độc lập để đơn giản hóa mọi thứ. Những người khác có thể trực tuyến, không sao cả.

Vì vậy, nói chung tôi rất thích giải pháp dựa trên trình duyệt vì mọi người đều có trình duyệt. Tôi thấy rằng một số người chuyển các dự án Django như một ứng dụng máy tính để bàn độc lập, mà tôi thấy không phải là một ý tưởng tồi. Tôi cũng đỏ về Camelot nhưng tôi nghĩ rằng điều này là khá cho cơ sở dữ liệu. Camelot sẽ chỉ hữu ích cho một số công cụ của tôi, đó là một chương trình tìm kiếm và trích xuất cơ sở dữ liệu. Nhưng khác không sử dụng cơ sở dữ liệu nào cả.

Bất cứ ai có thể đề xuất tôi, giải pháp tốt cho công cụ của tôi là gì?

Trả lời

5

Bạn có thể sử dụng ví dụ: bình để cung cấp giao diện người dùng.

Vì vậy, chỉ cần viết bạn các ứng dụng như bình thường, nhưng không có một giao diện đồ họa (thường bạn nên Logic anyways riêng biệt và GUI). Sau đó sử dụng ví dụ: Flask (Tôi thực sự thích microframework này, nhưng cũng có những người khác như Bottle) để viết một giao diện người dùng dưới dạng một trang web. Bạn có thể chạy trang web này cục bộ (đó là một dòng mã: app.run() rồi mở nó trong máy chủ web với URL http://localhost:5000) hoặc trên máy chủ web, ví dụ: với apache hoặc nginx.

+0

Một thành phần còn thiếu cho câu trả lời này là ở đây: https://www.reddit.com/r/Python/comments/21evjn/is_it_possible_to_deploydistribute_flask_as_an/. Nó nói về cách phân phối các ứng dụng web –

2

Làm thế nào về việc sử dụng Flex với Python? Giao diện của bạn là di động (vì Flex tạo các tệp flash); và bạn có thể sử dụng Python để kết nối giao diện.

Bên cạnh đó bạn có thể quyết định (dựa trên ứng dụng của bạn) để triển khai chúng trên web hoặc bọc chúng như thực thi bản địa với Flex.

thách thức duy nhất của bạn sẽ được nếu bạn quyết định đóng gói các ứng dụng dành cho Windows, để đảm bảo cho gói Python cùng với nó một cách chính xác (mà nên được yêu cầu).

1

này có thể không phù hợp với cách người dùng sử dụng ứng dụng của bạn, nhưng một lựa chọn sẽ là để tạo ra một máy ảo Linux (VirtualBox hỗ trợ các hệ điều hành phổ biến nhất là host) và phân phối đó để thay thế.

Điều này sẽ cung cấp cho bạn một mục tiêu duy nhất để phát triển và, nếu bạn xem xét cơ chế cập nhật của bản phân phối đã chọn (Apt, Yum, v.v.), bạn sẽ có thể thêm máy chủ của riêng mình làm nguồn và để máy ảo tự cập nhật mà không cần người dùng của bạn cần làm gì cả.

+0

Đó là một ý tưởng thú vị và tôi thậm chí còn tìm thấy một cái gì đó tương tự như các công cụ của tôi bằng cách sử dụng một máy ảo (http://www.dnalinux.com/). Làm thế nào GUI được thực hiện? Tôi có thể sử dụng mã cũ của mình được viết bằng wxPython không? – snowflake

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