調用python庫(c語言調用python庫)

本文目錄一覽:

c# 如何調用Python庫

這個是不是調用啊。這個僅僅是執行。如果是說調 用的話。python for .net和iron python都支持.net調 用python的模塊。

不過僅僅是執行的話也容易。假設你的start.py是一個可以執行的程序。是執行不是調用。不是import。

那麼你不需要set search paths,因為這個path是給import,也就是調用使用的。你set path沒有用。

你只需要全路徑帶過去,把start.py的全路徑補全了就可以了。

要實現調用,還需要將python的模塊編譯成c#可以使用的庫的形式。才可以直接用c#的方法import進來。很簡單的。而不需要使用python這個engine。

理論上講,如果.net支持動態加載。也可以使用動態加載的方法,使用python這個engine動態加載一個模塊。不過我不知道python for .net和iron python有沒有實現。這個太麻煩了。應該沒有完成。

所以你還是將python的代碼使用python for .net或者是iron python編譯生成可以發佈的庫。後面就簡單的了。直接在.net里import就好了。

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 中引入執行。

無需安裝Python,就可以在.NET里調用Python庫

如果你可以很簡單的引用一個Nuget包,並在無需手動修改的情況下,一切都會自動的配置好,假如可以達到這種程度,你會感覺怎麼樣?這就是我創建Python.Included的願景,Python.Included可以把packages python-3.7.3-embed-amd64.zip包含在它的程序集里,這這樣就允許你可以通過Nuget來有效的引用Python了。為了證明它能正常工作,並可以快速提供所有的NumSharp中仍然缺少的Numpy功能,我創建了基於Python.Included的Numpy.NET這個項目。

c可以調用python嗎

可以的。

C中內嵌Python

新建立一個工程,首先需要將工作目錄設置到Python-3.1.1PCbuild中,以獲取到動態庫,至於靜態庫的包含,Include目錄的指定,那自然也是少不了的。文件中需要包含Python.h文件,這也是必須的。

接口中

Py_Initialize();

Py_Finalize();

其他的根據需求,再引入相應的python builder 即可

原創文章,作者:TDPA,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/135383.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
TDPA的頭像TDPA
上一篇 2024-10-04 00:12
下一篇 2024-10-04 00:12

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • 蝴蝶優化算法Python版

    蝴蝶優化算法是一種基於仿生學的優化算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化算法Python版…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29

發表回復

登錄後才能評論