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