卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

python怎么在文件中添加內(nèi)容 怎樣在python程序中嵌入C程序片段?

怎樣在python程序中嵌入C程序片段?在c中嵌入python有一些步驟。安裝python程序,以便可以使用python頭文件和庫(kù)。添加 "Python.h "頭文件鏈接到我們編寫的源文件,并將其鏈

怎樣在python程序中嵌入C程序片段?

在c中嵌入python有一些步驟。

安裝python程序,以便可以使用python頭文件和庫(kù)。

添加 "Python.h "頭文件鏈接到我們編寫的源文件,并將其鏈接到 "python**。lib "庫(kù)(需要明確這個(gè)庫(kù)是靜態(tài)庫(kù)還是導(dǎo)出庫(kù))。

掌握并理解一些python C語(yǔ)言API,用于我們的C程序。

一些常用的C API函數(shù)

在理解以下函數(shù)之前,有必要知道**PyObject***指針。python中幾乎所有的對(duì)象都由這個(gè)指針指示。

py _ Initialize()ampampPy _ Finalize()

在調(diào)用任何python c函數(shù)之前需要調(diào)用的函數(shù)初始化 "用于初始化python模塊,大概是加載初始化加載dll。相應(yīng)地,使用 "最終確定 "在使用python模塊后釋放它。

PyImport_ImportModule()

用于加載python模塊,這是一個(gè)通用的python文件。這里需要注意的是,當(dāng)模塊被加載時(shí),模塊中所有的可執(zhí)行語(yǔ)句都會(huì)被執(zhí)行。包括import語(yǔ)句和函數(shù)體外部的所有語(yǔ)句。

PyObject_GetAttrString()

返回模塊中的函數(shù)。

Py_BuildValue()

創(chuàng)建參數(shù)元組,通常用這個(gè)函數(shù)創(chuàng)建一個(gè)元組,然后這個(gè)元組作為參數(shù)傳遞給python中的函數(shù)。

PyEval_CallObject()

調(diào)用函數(shù)并傳遞由 "Py_BuildValue"作為被調(diào)用函數(shù)的參數(shù)。

源代碼示例

下面的例子是調(diào)用Python C代碼中的s函數(shù),傳遞參數(shù)并獲取返回值。

Test.cpp代碼

#包含ltiostreamgt

#包含ltPython.hgt

使用命名空間標(biāo)準(zhǔn)

int main(int argc,char* argv[])

{

Py_Initialize() //初始化

PyObject * pModule為空

PyObject* pFunc NULL

PyObject * pParam空

PyObject*預(yù)設(shè)為空

const char* pBuffer NULL

int iBufferSize 0

p模塊PyImport_ImportModule(";test_python ";)

如果(!p模塊)

{

cout ltlt獲取模塊失敗!ltlt endl

退出(0)

}

p func py object _ GetAttrString(p module,main)

如果(!pFunc)

{

cout ltlt get func失?。tlt endl

cout ltlt int(pFunc) ltlt

python如何打包成exe文件?

在之前的文章《《讓你的代碼更好的交付,使用Python實(shí)現(xiàn)模塊打包發(fā)布》》中,分享了測(cè)試開(kāi)發(fā)工程師在交付時(shí),使用車輪庫(kù)將交付模塊封裝成. whl文件,達(dá)到了提高交付部署效率的目的。同時(shí),采用統(tǒng)一的發(fā)布,也有助于提高測(cè)試開(kāi)發(fā)的標(biāo)準(zhǔn)化程度。

除了發(fā)布模塊可以打包成。whl。

格式化文件,對(duì)于一些小型的測(cè)試工具發(fā)布場(chǎng)景,分享一種更適合的發(fā)布——打包成可執(zhí)行文件。exe程序,讓用戶即使在沒(méi)有Python的環(huán)境下也依然可以直接運(yùn)行,進(jìn)一步降低使用成本,提高使用效率。

接下來(lái),讓我們 分享如何使用PyInstaller庫(kù)將發(fā)布模塊打包成一個(gè)。exe格式文件。

建議通過(guò)pip安裝PyInstaller,否則可能會(huì)報(bào)錯(cuò)其他依賴庫(kù)缺失,需要手動(dòng)逐個(gè)安裝。

Pip安裝PyInstaller PyInstaller使用下面這個(gè)簡(jiǎn)單的代碼示例,其中導(dǎo)入了Python內(nèi)置的library-Time模塊和第三方library-csv模塊,這樣每次運(yùn)行時(shí)都可以將固定數(shù)據(jù)寫入新生成的csv文件中。

在模塊目錄下執(zhí)行以下命令,執(zhí)行日志如下:

您可以在其中看到。uildwritefiles.exe文件已經(jīng)在當(dāng)前目錄下生成。

當(dāng)我們執(zhí)行WriteFiles.exe時(shí),我們可以發(fā)現(xiàn)WriteFile_1550935956.csv文件已經(jīng)被添加到當(dāng)前目錄中。

PyInstaller -F常用參數(shù)說(shuō)明:打包單個(gè)文件,生成的結(jié)果是一個(gè)。exe格式文件。-D:打包多個(gè)文件,生成的結(jié)果是一個(gè)目錄,包括第三方依賴,資源,。exe文件等。適合用框架的形式寫工具模塊,帶默認(rèn)參數(shù)。-c:使用Windows控制臺(tái)子系統(tǒng)來(lái)執(zhí)行、顯示命令行窗口和默認(rèn)參數(shù)。-w:由Windows子系統(tǒng)執(zhí)行,程序啟動(dòng)時(shí)不會(huì)打開(kāi)命令行。這個(gè)參數(shù)在編寫GUI程序時(shí)很有用。-p:指定一個(gè)額外的導(dǎo)入路徑,類似于PYTHONPATH,多個(gè)目錄可以使用路徑分隔符(Windows用分號(hào),Linux用冒號(hào))。–-add-data:打包附加資源,多個(gè)資源可以使用路徑分隔符(Windows用分號(hào),Linux用冒號(hào))。––add-binary:打包多余的代碼,多個(gè)代碼可以使用路徑分隔符(Windows用分號(hào),Linux用冒號(hào))。同時(shí),將添加–- add-binary添加文件的引用文件。-i:添加圖標(biāo)的圖標(biāo)。exe文件。-n:編輯的文件名。exe和。規(guī)格。我們嘗試使用-F,-n參數(shù)只生成一個(gè)。exe文件,文件名為Toutiao。我們執(zhí)行以下命令并運(yùn)行日志,如下所示:

py installer-f-n Toutiao.exe其中distToutiao.exe文件生成在當(dāng)前目錄下,目錄結(jié)構(gòu)如下。

除了PyInstaller模塊,還可以將模塊打包成。exe格式,還可以了解pyexe模塊,也可以達(dá)到同樣的打包效果,所以我贏了 這里不單獨(dú)介紹了。

如果對(duì)你有幫助,歡迎評(píng)論留言。