當前位置:首頁 » 編程語言 » python參考手冊chm

python參考手冊chm

發布時間: 2025-03-31 11:36:37

A. 如何讓python調用C和C++代碼

如何讓python調用C和C++代碼

安裝python後,會有一個chm格式的python手冊。要搞明白如何讓python調用C/C++代碼(也就是寫python的 extension),你需要征服手冊中的
<<Extending && embedding>>厚厚的一章。在昨天花了一個小時看地頭暈腦脹,仍然不知道如何寫python的extension後,查閱了一些其他 書籍,最終在<<Python Programming On Win32>>書中找到了教程。
下面記錄一下如何在visual studio 2005中,寫一段C/C++的MessageBox代碼,然後提供後python調用,最後的結果當然是顯示一個MessageBox.
1. 首先要明白的是,所謂的python擴展(也就是你提供給python的c/c++代碼,不一定是c/c++代碼,可以是其他語言寫的代碼)是一個 dll,並且這個dll放在本機python安裝目錄下的DLLs目錄下(譬如我機器上的路徑是:F:\Program Files\Python25\DLLs),假如我們接下來要寫的擴展mole名為mb,python調用的代碼為: import mb
mb.showMsg("Python's really amazing, I kindda love it!")
python怎麼找到我們的mb模塊呢?就是上面說的,我們要生成一個mb.dll,然後拷貝到Dlls目錄下面,為了區別普通的dll和python專用擴展的dll,我們的 mb.dll修改成mb.pyd(python dll)
2. 搭建環境,我們要使用python提供的c頭文件和lib庫來進行擴展的開發。 在vs 2005下點擊菜單 "工具"->"選項", 打開選項對話框,選擇"項目和解決方案->VC++目錄", 然後在右邊"顯示以下內容的目錄"得comboBox上選擇"包含文件」,添加python的include目錄(我的機器上是"F:\Program
Files\Python25\include"),然後選擇庫文件,添加python的libs目錄(我的機器上是"F:\Program Files\Python25\libs")。
既然擴展是一個dll,接下來我們要建立一個「動態鏈接庫」工程,然後開始寫代碼:
#include <python.h> //python.h是包含python一些定義的頭文件,在python的include目錄下 /*
我的python版本是2.5, 因為安裝python後它沒提供debug下的lib庫文件,因此你必須生成release版的dll,
想要生成dll版本的,你要到python官網上自己去下載python源代碼,當然你可以繼續生成release版本的dll,但dll中包含調試信息

*/
#pragma comment(lib, "python25.lib")
//先不管
static PyObject* mb_showMsg(PyObject* self, PyObject *args); /*
如果你的擴展是mb,那麼必須實現一個initmb函數,並且從dll中導出這個函數,但我們在python中調用import mb時,python會去dll里去調用
initmb函數,這個函數告訴python我們有些什麼函數,該怎麼告訴python我們有一個showMsg函數呢?下面詳解 */
//必須extern "C"下,這樣不會在C++編譯器里不會更改掉導出的函數名字,我第一次就犯了這樣的錯誤
extern "C" __declspec(dllexport) void initmb() { /*
當調用mb.showMsg("Python's really amazing, I kindda love it!")時, 相當於你告訴python我有一個showMsg函數,我們怎麼告訴python去調用我們dll里的mb_showMsg函數呢?技巧就是下面的方式, 定義一個字典數據結構,key => showMsg, value =>mb_showMsg,METH_VARARGS是函數調用方式,仔細查手冊吧 */
static PyMethodDef mbMethods[] = { {"showMsg", mb_showMsg, METH_VARARGS},
{NULL, NULL, NULL} /*sentinel,哨兵,用來標識結束*/ };
//告訴python我們的模塊名叫mb, 模塊包含的函數都在mbMethods字典里 PyObject *m = Py_InitMole("mb", mbMethods); } /*
接下來實現核心功能showMsg */
//第一個self參數我們用不著,具體查手冊,第二個參數是python傳給我們的參數,它是一個python的參數tuple
static PyObject* mb_showMsg(PyObject* self, PyObject *args) {
//我們的showMsg函數需要的是一個字元串參數 const char* msg = NULL; /*

調用特殊參數解碼python傳遞給我們的參數,s是string,我們傳遞接收參數的變數地址,
如果你的功能函數需要兩個參數,在PyArg_parseTuple後面繼續添加接受參數的變數地址,
這個函數的原型是類似printf的不定參數的形式
PyAPI_FUNC(int) PyArg_ParseTuple(PyObject *, const char *, ...); */
if (!PyArg_ParseTuple(args, "s", &msg)) return NULL;
//調用MB
int r = ::MessageBox(NULL, "hello", "Caption:Form C mole", MB_ICONINFORMATION | MB_OK);
//返回值
return Py_BuildValue("i", r); }
將上面這段混雜著大量注釋的代碼拷貝到你的編輯器里,然後編譯生成mb.dll,修改後綴成mb.pyd,然後拷貝到python的DLLs目錄下,打開idle(python的交互程序),寫入代碼: import mb
mb.showMsg("Python's really amazing, I kindda love it!")
可以看到彈出來一個MessageBox。

B. 如何使用sphinx生成Python第三方模塊的文檔

在使用Python的過程中,無疑我們經常需要下載安裝第三方模塊(如何安裝:URL),而安裝後我們必然會面臨一個使用的問題,這時候我們需要閱讀相關的文檔。可是我們會發現下載的第三方模塊目錄的doc文件夾下只有一個conf.py文件和一些後綴為rst的文件,文檔在哪裡呢?
其實Python提供了專用的文檔生成工具,有了這些工具就可以很方便地生成我們需要的文檔了。本文就是介紹如何使用一些第三方工具(sphinx)來生成這些文檔。
1.下載並安裝Docutils:http://docutils.sf.net/。
2.下載並安裝sphinx :http://pypi.python.org/pypi/Sphinx/1.1。Sphinx 是用來生成文檔的,設計的初衷是為了生成python的文檔。可以生成html、htmlhelp/chm、qthelp、devhelp、latex、man 等格式的文檔。
3.在Widnows環境下,打開命令提示符,使用cd /d 命令將當前目錄切換至Sphinx目錄,運行命令:python sphinx-build.py -b html sourcedir builddir,其中,-b後面的字元串用於控制輸出文檔的格式,默認為html。sourcedir表示文檔來源文件夾(一般就是包含conf.py文件的那個文件夾),builddir表示生成文檔的目標文件夾。(註:在Windows環境下,請不要將sphinx文件夾、sourcedir 和builddir 設置成包含中文的路徑,否則容易出現一些默名其妙的錯誤,例如編碼錯誤。)

C. windows環境的python的環境變數

默認情況下,在windows下安裝python之後,系統並不會自動添加相應的環境變數。此時不能在命令行直接使用python命令。

1. 首先需要在系統中注冊python環境變數:假設python的安裝路徑為c:\python27,則修改我的電腦->屬性->高級->環境變數->系統變數中的PATH為:

(為了在命令行模式下運行Python命令,需要將python.exe所在的目錄附加到PATH這個環境變數中。)

PATH=PATH;c:\python27

上述環境變數設置成功之後,就可以在命令行直接使用python命令。或執行"python *.py"運行python腳本了。

2. 此時,還是只能通過"python *.py"運行python腳本,若希望直接運行*.py,只需再修改另一個環境變數PATHEXT:

PATHEXT=PATHEXT;.PY;.PYM

3. 另外,在使用python的過程中,可能需要經常查看某個命令的幫助文檔,如使用help('print')查看print命令的使用說明。默認安裝的python無法查看幫助文檔,尚需進行簡單的配置:

在python安裝目錄下,找到python272.chm,使用hh -decompile .python272.chm將其反編譯出來,然後將其所在的目錄加入到上面提到的PATH環境變數中即可。

4. 如何使Python解釋器能直接import默認安裝路徑以外的第三方模塊?

為了能import默認安裝路徑以外的第三方的模塊(如自己寫的模塊),需要新建PYTHONPATH環境變數,值為這個模塊所在的目錄。

D. 如何從零開始學python

1、學習的時候,我們都是要從Python的基礎語法開始學習 ,了解什麼是Python的變數 什麼是循環 什麼是函數,什麼是模塊。類等等。總之,基礎是學習以後高級開發的基石。
這個階段可以,選擇一些經典書籍或者視頻進行學習。
書籍可以看看《python快樂編程—基礎入門》這本書,是針對零基礎學生來編寫的書。

2、在學習完基礎語法的時候,你也對python有了一定程度的了解了,也知道Python有很多的學習方向,比如說數據採集方向(爬蟲),或者Web開發方向,也可能是最近特別火熱的人工智慧方向。每個方向所需要的技術都是不盡相同的,所以在我們學習完成Python的基礎語法之後,一定要慎重選擇自己之後的進階方向。
3、在進階階段,建議以最新的python視頻學習為主,相關書籍為輔,這個階段主要是學的技術是最新的,不要給自己留一個學完之後技術已經過時的慘敗後果。
此外還有一些小小的學習技巧分享給大家,希望大家調整好心態,堅持下去!
1.作為小白剛接觸編程,理解起來慢很正常。不能理解的東西,也不要死磕太久,在不斷的練習中,你對代碼的理解會越來越深。
2.個人認為,人按學習能力可以暴力分為:上手快&忘得快,上手慢&理解深,上手快&理解深。好了,第三類人我就不想多說什麼了。。。相信很多小夥伴都是第二類人!
3. 遇到問題,別死磕,多用搜索引擎,多看大牛的博客。
4. 覺得某個知識點時間花得久了,無非是想短時間投入,獲得較大的成就感,或者說想一帆風順敲代碼,別遇到什麼bug。不存在的。而且,一般情況下,花越多時間理解的知識點,花越多時間改好的bug,不是會獲得越大的成就感才對嘛?!

E. 在中文版 Windows 上查看 python.chm,如何消除亂碼

解決中文Windows上Python chm亂碼的難題


在Python 3.6及更高版本的Windows環境中,遇到一個令人頭痛的問題——Python的官方文檔(python.chm)在中文版Windows上顯示異常,中文字元出現亂碼。問題的核心在於,Python的HTML字元編碼從Unicode轉換為Windows-1252,而Windows自帶的chm查看器hh.exe卻依賴於IE瀏覽器的內核,而IE並不支持這種編碼。


原因解析


Windows chm查看器默認使用GBK編碼,而Python 3.6之後的chm文件使用Windows-1252,這導致了hh.exe無法正確識別。即便手動選擇西歐(ISO)編碼,也只是臨時解決當前網頁的問題,對hh.exe本身的編碼處理並無幫助。此外,hh.exe的菜單功能可能因為編碼問題而顯得不完整。


尋找解決方案


為了解決這個問題,我們不得不尋找替代方案。例如,Sumatra PDF這樣的第三方閱讀器,雖然非IE內核,支持cp1252,但遺憾的是,它缺少索引和搜索功能。真正的挑戰在於hh.exe的編碼受系統區域設置影響,而Windows的全局system locale設計並不靈活,無法為每個進程獨立設定。


嘗試性地,我們可以使用GetACP()函數查看當前的codepage,但有時可能會得到1252而不是系統默認的936。微軟曾提供AppLocale來解決這個問題,但已不再推薦。取而代之的是開源項目Locale Emulator (LE),它允許我們為特定進程設置獨立的locale。通過LEInstaller.exe和LEGUI.exe,我們可以為hh.exe設置西歐(cp1252)這樣的locale,通過創建快捷方式,用LEProc.exe啟動hh.exe,以解決亂碼問題。


值得注意的是,對於32-bit系統,可以直接使用hh.exe,但64-bit系統需要使用C:WindowsSysWOW64hh.exe。LE通過API鉤子技術實現這一功能,32-bit系統相對容易,而64-bit系統則需要額外的技巧。這是在2018年9月29日的解決方案,隨著時間的推移,可能需要更新或尋找新的技術來優化處理。


總結


面對Python chm在中文Windows上的亂碼問題,需要跳出常規的框架,採用更靈活的工具和方法。通過Locale Emulator,我們找到了一種可能的路徑,盡管64-bit系統處理存在挑戰,但解決方案的探索從未停止。持續關注最新技術發展,或許能為我們找到一個更加完美的解決之道。

F. python 幫助文檔 怎麼使用

  1. python幫助文檔是chm格式的(即英語「Compiled Help Manual」的簡寫,即「已編譯的幫助文件」。)

  2. CHM是微軟新一代的幫助文件格式,利用HTML作源文,把幫助內容以類似資料庫的形式編譯儲存。

    python幫助文檔在python安裝目錄的doc文件夾下,雙擊即可打開。



G. 大一該怎麼學python

1)學好python的第一步,就是馬上到python官網上下載一個python版本。我建議初學者,不要下載具有IDE功能的集成開發環境,比如Eclipse插件等。

2)下載完畢後,就可以開始學習了。學習過程中,我建議可以下載一些python的學習文檔,比如《dive into python》,《OReilly - Learning Python》等等。通過學習語法,掌握python中的關鍵字語法,函數語法,數學表達式等等

3)學完了基本語法後,就可以進行互動式學習了。python具備很好的交互學習模式,對於書本上的例子我們可以通過交互平台進行操練,通過練習加深印象,達到學習掌握的目的。

4)通過以上三個步驟的學習後,我們大致掌握了python的常用方法、關鍵字用法以及函數語法等。接下去的學習上,我們就可以著手學習常用模塊的使用, 比如os,os.path,sys,string模塊等。我們可以在交互環境中先熟悉使用其中的函數,如果遇到函數的使用上的問題,可以參考python 安裝後的自帶chm幫助文件。

5)為了更好地掌握python,我們的學習不能只是停留在學習一些語法或者api階段。在此階段中,我們可以嘗試用python解決我們項目中遇到的一 些問題,如果項目不是用python開發的,那我們可以想想能不能用python製作一些項目組可以使用的一些工具(utility),通過這些工具簡化 項目組成員的任務,提高我們的工作效率。如果沒有項目,我們也可以自己找些題目來自己練習練習。

6)經過以上鍛煉後,我們的python知識水平肯定是越來越高。接下去的學習,我們就要更上一層樓。為了學以致用,真正能應用於項目開發或產品開發,我 們還必須學習企業應用開發中必須要掌握的網路和資料庫知識。在此的學習就不光是python語言本身的學習了,如果之前沒有學習和掌握很網路和資料庫知 識,在此階段我們可以藉此機會補習一把。

7)在此,我想我們對python的使用以及信手拈來了,即使忘了api的用法,我們也可以在短時間內通過查看文檔來使用api。那麼接下去,我們要學習 什麼呢?那就是設計能力,在學習設計能力的過程中,如果對類等面向對象的概念不清楚的,在此階段也可以學習或加以鞏固。就像飛機設計師設計飛機通過學習模 型來設計一樣,我們也可以通過學習書上的經典例子來學習設計。等有了設計的基本概念後,我們就可以著手設計我們的程序了。在此階段中,我們重要的是學習抽 象的思想,通過隔離變化點來設計我們的模塊。

8)到此階段,我們已經是真正入門了。在接下去的工作中,就是要快速地通過我們的所學來服務項目了。在此階段,我們除了掌握python自帶的模塊外,我 們最好在掌握一些業界廣泛使用的開源框架,比如twisted、peak、django、xml等。通過熟練使用它們,達到閃電開發,大大節省項目寶貴時 間。

9)你已經是個python行家了,在此階段,我們在工作中會遇到一些深層次的、具體的困難問題。面對這些問題,我們已經有自己的思考方向和思路了。我們 時常會上網觀看python的最新發展動態,最新python技術和開源項目,我們可以參與python論壇並結交社區中一些python道友。

10)你已經是個python專家,在此階段你應該是個python技術傳播者。時不時在組織中開壇講座,並在博客上傳播你的python見解。你會上論 壇幫助同行們解決他們提出的問題,你會給www.python.org網站提出你的寶貴建議,並為python語言發展獻計獻策。

任何知識的學習無止境,python的學習也不另外。在掌握python的用法、api和框架後,我們更要學習設計模式、開發方法論等

熱點內容
電腦文件加密軟體免費 發布:2025-04-02 03:02:51 瀏覽:798
php圖片管理 發布:2025-04-02 03:01:11 瀏覽:258
然後弄編程 發布:2025-04-02 02:54:06 瀏覽:105
解壓室俱樂部 發布:2025-04-02 02:47:04 瀏覽:274
安卓哪裡下載文豪野犬 發布:2025-04-02 02:45:04 瀏覽:784
優酷安卓怎麼免廣告 發布:2025-04-02 02:30:07 瀏覽:828
安卓系統怎麼把繁體字改為簡體字 發布:2025-04-02 02:14:39 瀏覽:319
androidpos機 發布:2025-04-02 01:40:54 瀏覽:368
電腦上建立ftp伺服器 發布:2025-04-02 01:26:59 瀏覽:721
wingftp破解 發布:2025-04-02 01:01:28 瀏覽:113