Tôi đang cố gắng tạo một ứng dụng cherrypy với một wxpython ui. Vấn đề là cả hai thư viện đều sử dụng trình xử lý sự kiện vòng lặp đóng. Có cách nào để làm việc này không? Nếu tôi có wx ui bắt đầu cherrypy là sẽ khóa ui?cherrypy và wxpython
Trả lời
Xem câu trả lời của tôi tại CherryPy interferes with Twisted shutting down on Windows
Nói tóm lại, CherryPy xử lý các vòng lặp chính theo mặc định, nhưng nó chắc chắn không cần phải. Ngừng sử dụng quickstart và gọi engine.start mà không có engine.block, và CP sẽ chạy trong các chủ đề riêng của nó và để nguyên luồng chính cho khung công tác khác của bạn để kiểm soát.
Nếu bạn sử dụng luồng, bạn sẽ có thể khởi động máy chủ CherryPy trong một chủ đề và chạy wxPython ở đầu kia. Bài viết này (http://wiki.wxpython.org/LongRunningTasks) trên wiki wxPython có một số thông tin về luồng và mã nguồn máy chủ CherryPy (http://www.cherrypy.org/browser/trunk/cherrypy/wsgiserver/__init__.py) có một số tài liệu về cách máy chủ hoạt động, và có thể làm thế nào bạn có thể làm cho nó tương tác với chủ đề.
Một cách để tách chúng là bắt đầu chúng thành hai quy trình riêng biệt và để chúng giao tiếp thông qua một số loại cơ chế IPC. Bạn có thể phải viết một bộ điều hợp nhỏ để họ nói một giao thức chung.
Vì bạn đang dùng CherryPy, bạn cũng có thể hiển thị giao diện điều khiển qua HTTP mà GUI wx có thể sử dụng để điều khiển máy chủ của bạn.
Tôi khuyến khích bạn xem Calibre (trình quản lý sách điện tử) source. Nó được viết bằng PyQT, nhưng sử dụng CherryPy để cho phép mọi người xem thư viện của họ từ bên ngoài mạng LAN của họ.
Bạn có thể mô tả ứng dụng của mình một chút không? Tôi không chắc bạn đang tích hợp máy chủ web và GUI như thế nào. –
Câu hỏi của bạn có vẻ giống như hai hobbit – Manu