探索UWP C調(diào)用Python的全新解決方案
在UWP開發(fā)中,想要實(shí)現(xiàn)C調(diào)用Python的需求并不罕見。這種嘗試往往涉及到需要使用特定的Python代碼和庫,而UWP平臺本身并沒有對應(yīng)的支持。然而,當(dāng)前面臨的問題是,生成的應(yīng)用可能會與UWP的沙盒
在UWP開發(fā)中,想要實(shí)現(xiàn)C調(diào)用Python的需求并不罕見。這種嘗試往往涉及到需要使用特定的Python代碼和庫,而UWP平臺本身并沒有對應(yīng)的支持。然而,當(dāng)前面臨的問題是,生成的應(yīng)用可能會與UWP的沙盒機(jī)制產(chǎn)生沖突。
多種解決方式
針對在UWP中調(diào)用Python的需求,其實(shí)存在多種解決方案,但大多數(shù)都無法令人滿意。IronPython或許是一個值得考慮的選擇。不過,無論采用何種方式,直接調(diào)用單獨(dú)安裝的Python是不可行的。如果想要調(diào)用較新版本的Python,一種方法是利用第三方類庫——Common Language Extension(CLE)。
使用CLE擴(kuò)展
在CLE的下載頁面上可以找到專為Windows UWP設(shè)計(jì)的CLE版本。只需下載并安裝即可開始使用。不過需要注意的是,在試用版本中,創(chuàng)建的對象數(shù)量是受限制的。
文件結(jié)構(gòu)解析
安裝完成后,打開壓縮文件夾,你會看到其中的內(nèi)容。對于UWP的使用而言,關(guān)鍵是位于win10.uwp文件夾下的內(nèi)容。打開該文件夾后,你會看到幾個子文件夾,包括Python-3.4.5、Python-3.5.2、Python-3.6.3,以及存放需要引用的庫文件的lib文件夾。
設(shè)置引用項(xiàng)
進(jìn)入lib/x86文件夾,標(biāo)有紅色箭頭的兩個文件是需要在解決方案管理器中添加引用的文件。此外,在Python-3.4.5文件夾中還有一個zip壓縮包,其中包含了一些Python基本的必需包(非Python解釋器)。同時(shí),還有其他與Python相關(guān)的文件,具體內(nèi)容可查看示例文件夾example。
示例演示
示例文件位于examples/testpython文件夾下,通過雙擊文件即可打開。在范例中有兩個引用,Libstarcore和Star_csharp,此外還有三個文件需要設(shè)置為復(fù)制到輸出文件夾,以便在運(yùn)行時(shí)被調(diào)用。
運(yùn)行測試
在編譯設(shè)置中選定x86后,點(diǎn)擊運(yùn)行按鈕,你將看到控制臺中Python代碼的執(zhí)行結(jié)果。然而,在對生成的包進(jìn)行認(rèn)證時(shí),可能會遇到失敗的情況。具體原因在于存在許多UWP沙盒不允許調(diào)用的API,作者目前尚未明確清楚這些限制的根源。
通過以上完整步驟,從CLE的安裝到示例代碼的運(yùn)行,希望能夠幫助開發(fā)者更好地理解如何在UWP環(huán)境下實(shí)現(xiàn)C調(diào)用Python的功能。