當前位置:首頁 » 網頁前端 » pythonweb桌面
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

pythonweb桌面

發布時間: 2023-02-13 17:53:26

A. Electron 框架中調用 Python 構建桌面應用

不同的語言、框架都有自己擅長的領域:Electron 基於 Chromium 和 Node.js 能以 Web 開發的模式打造桌面應用,開發用戶界面又快捷又簡單;Python 則在數據分析、自動化腳本等領域有非常多的應用。兩者的社區生態都十分強大,由兩者共同構建應用,在界面開發、功能、性能上能夠強強聯合;

為了簡單驗證技術可行性,我們來編寫一個 Demo:

目的:驗證 Electron 打造的桌面應用能夠調用 Python,思路是使用 RPC 或 HTTP 或 WebSocket 進行通信

Demo 功能:輸入 x、y 坐標,程序會移動滑鼠到屏幕的 x,y 位置(通過 python 庫 pyautogui 實現)

Demo 運行環境:MacOS、pyInstaller: 版本 4.5.1、python: 版本 3.9.7

源碼:-------- 項目源碼 --------

注意:移動滑鼠需要授予應用控制許可權,在 MacOS 下設置 偏好設置 -> 隱私 -> 輔助功能 -> 允許對應的應用。

技術棧:NodeJS、Electron、Python、aiohttp(HTTP、WebSocket)、pyautogui(控制滑鼠)

為了使 NodeJS 和 Python 能夠通信,Python 需要啟動一個本地通信服務,Demo 中 py/api.py 能夠啟動一個本地 HTTP 服務:

然後我們需要執行 Python 代碼以啟動服務,為了使 NodeJS 可以執行 Python,我們使用 pyinstaller 將 Python 打包成可執行文件:

Python 啟動了本地 HTTP 服務後,Chromium 和 Node.js 就可以通過請求的方式,與 python 連接通信了:

簡單來說三個步驟:

本項目只是一個驗證思路的 Demo,真的需要在項目上實踐,還需要考慮以下幾個點:

應該使用 RPC 通信而不是 HTTP 或者 WebSocket,Demo 使用 HTTP 只是搭建方便。實踐中在建立連接、保持連接、異常重連都需要編寫更多的邏輯來處理。為什麼 Demo 沒有使用 zerorpc? 這個庫已經 4 年沒有維護了,不兼容新版 NodeJS。

項目通過 pyinstaller 打包成可執行文件來調用 python。實際上其他能編譯為可執行文件的語言也一樣。還可以使用 WebAssembly 將其他語言編譯成 .wasm,在 NodeJS 中引入執行。

B. 桌面開發c#還是python

推薦python,理由是基本符合你的要求,從你對matlab的使用上看,對參數方面應該還是理解力有一定基礎,python上手相對比c#快,基本有點英語基礎,有點面向對象就可以上手了,提供工作效率不就是腳本,在現今的腳本python絕對是你的不二選擇,不要問為什麼,自己看運維方面的,懂python的效率絕對高,編輯桌面程序,模塊有很多可以選擇,基本用法都差不多,內置的Tkinter每天花個2-3小時,一個禮拜就可以開始設計了。PYQT(可以使用他的軟體進行控制項布局在轉換成python代碼),wxpython也簡單,設計方法大同小異,簡答網路程序(指爬蟲?,還是腳本上網等)爬蟲的框架多,學習也簡單,腳本也很簡單,然後安卓可以使用(不清楚你的意思,是編譯後可以使用?還是可以進行編程?)反正有qpython,我自己手機也下了,可以進行編程,web開發都行,但要下載模塊,然後現在移動伺服器很多使用python進行開發,用的框架也很多,反正看你的學習方向(web,還是桌面開發,運維等方面,如果只是興趣的話,更好,因為你會發現python的優點。

C. python為什麼不適合開發桌面軟體

不適合,因為python本身是腳本語言,如果要開發桌面軟體,要用到py2exe等工具來將一個有GUI的.py文件轉換成exe等可執行文件,在這個過程中,很容易將源代碼暴露給用戶看,也就是說這和開源沒多大區別了。

我個人感覺更適合開發各種管理系統。看我接下來舉的例子你就明白了。

Python中的函數與普通數學中的函數基本上是一致的——它接收輸入數據,對數據進行處理並輸出結果。輸出的結果完全取決於函數是如何被設計的。另一方面,Python中的類是被設計為輸出其他對象的對象的原型。

D. python是只能做網站么,不能製作桌面應用程序吧。

除了不能寫操作系統,其它的都可以。