關(guān)于c調(diào)python.h的坑

0x01 為毛用python.h努释?


python.h是基于python-devel的開發(fā)包星澳,比如你要用到c調(diào)用python去執(zhí)行一些任務(wù)揪利,這個時候python.h就是你的好幫手植锉。在我所理解一般用它都有兩個場景:
1. 借助語言優(yōu)勢解決問題泥栖;
2. 簡化開發(fā)難度,偷懶弧满;
在我這婆跑,我用它的主要目的在于加入掃描框架的依賴,畢竟lua的學(xué)習(xí)成本挺高的庭呜,如果正好這個安全人員不懂lua滑进,只懂python咋整?能不成讓他學(xué)習(xí)lua么募谎?成本是一個方面扶关,更多的是怎么快起來。一個團隊数冬,在快節(jié)奏下才能成長起來节槐。

0x02 坑坑洼洼的過程


正好手上有一臺機器,別人給我用來測試玩的拐纱,我就拿來做些調(diào)試和環(huán)境的測試铜异。還沒到生產(chǎn)環(huán)境,就遇到不少的坑秸架,當(dāng)時在線上環(huán)境也有測試揍庄,陪著運維的小哥一起搞,不斷的測試和調(diào)整东抹,折騰到很晚才搞成功蚂子,這里記錄下過程。

1.1 python.h錯誤異常

[root@cloud ~]# gcc b.c -I/usr/include/python2.7 -o xxx
b.c:11:27: 錯誤:Python/Python.h:沒有那個文件或目錄
b.c: 在函數(shù)‘great_function_from_python’中:
b.c:43: 錯誤:‘PyObject’未聲明(在此函數(shù)內(nèi)第一次使用)
b.c:43: 錯誤:(即使在一個函數(shù)內(nèi)多次出現(xiàn)府阀,每個未聲明的標(biāo)識符在其
b.c:43: 錯誤:所在的函數(shù)內(nèi)也只報告一次缆镣。)
b.c:43: 錯誤:‘pModule’未聲明(在此函數(shù)內(nèi)第一次使用)
b.c:43: 錯誤:‘pFunc’未聲明(在此函數(shù)內(nèi)第一次使用)
b.c:44: 錯誤:‘pArgs’未聲明(在此函數(shù)內(nèi)第一次使用)
b.c:44: 錯誤:‘pValue’未聲明(在此函數(shù)內(nèi)第一次使用)

默認(rèn)的情況下芽突,python.h應(yīng)該在這個位置试浙,但是測試的結(jié)果說找不到。內(nèi)心是崩潰的寞蚌,我在mac下是正常的田巴。

1.2 版本問題

用find命令找當(dāng)前系統(tǒng)中的python.h的版本钠糊,發(fā)現(xiàn)只有2.6的,但是我按照了python2.7,這個版本完全錯亂了壹哺。

[root@cloud ~]# find / -name Python.h 2>/dev/null
/usr/include/python2.6/Python.h

心想抄伍,坑啊~~ 為了解決問題,少不得需要重新編譯之類的屁事管宵,當(dāng)然截珍,我們也干了這事,最后發(fā)現(xiàn)仍然不行箩朴,參考的例子(知乎上的指引岗喉,坑b)如下:

wget http://www.python.org/ftp/python/2.7.6/Python-2.7.6.tar.xz
tar xJf Python-2.7.6.tar.xz
cd Python-2.7.6
./configure --enable-shared --prefix=/usr/local/python2.7
make
make install
echo /usr/local/python2.7/lib > /etc/ld.so.conf.d/python2.7.conf
ldconfig
restorecon -RF /

0x03 解決方案


首先,你需要先把所有的python環(huán)境卸載炸庞,然后安裝同步的環(huán)境钱床,比如python2.7.12,devel也是python2.7.12埠居,還有就是libs也必須是查牌,不然弄不了,另外滥壕,編譯安裝默認(rèn)不靠譜纸颜,最好就是rpm的方式來。包我留下绎橘,有需要的玩懂衩。

https://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/python27-2.7.12-1.ius.centos6.x86_64.rpm
https://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/python27-devel-2.7.12-1.ius.centos6.x86_64.rpm
https://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/python27-libs-2.7.12-1.ius.centos6.x86_64.rpm

這是我的解決方案,當(dāng)前完美解決我的問題金踪,另外浊洞,推薦大家按照這個方式來搞,特別在centos環(huán)境下胡岔,這個比較坑爹法希。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市靶瘸,隨后出現(xiàn)的幾起案子苫亦,更是在濱河造成了極大的恐慌,老刑警劉巖怨咪,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件屋剑,死亡現(xiàn)場離奇詭異,居然都是意外死亡诗眨,警方通過查閱死者的電腦和手機唉匾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人巍膘,你說我怎么就攤上這事厂财。” “怎么了峡懈?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵璃饱,是天一觀的道長。 經(jīng)常有香客問我肪康,道長荚恶,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任磷支,我火速辦了婚禮裆甩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘齐唆。我一直安慰自己嗤栓,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布箍邮。 她就那樣靜靜地躺著茉帅,像睡著了一般。 火紅的嫁衣襯著肌膚如雪锭弊。 梳的紋絲不亂的頭發(fā)上堪澎,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天,我揣著相機與錄音味滞,去河邊找鬼樱蛤。 笑死,一個胖子當(dāng)著我的面吹牛剑鞍,可吹牛的內(nèi)容都是我干的昨凡。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼蚁署,長吁一口氣:“原來是場噩夢啊……” “哼便脊!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起光戈,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤哪痰,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后久妆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體晌杰,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年筷弦,在試婚紗的時候發(fā)現(xiàn)自己被綠了肋演。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖惋啃,靈堂內(nèi)的尸體忽然破棺而出哼鬓,到底是詐尸還是另有隱情监右,我是刑警寧澤边灭,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站健盒,受9級特大地震影響绒瘦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜扣癣,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一惰帽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧父虑,春花似錦该酗、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至莱衩,卻和暖如春爵嗅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背笨蚁。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工睹晒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人括细。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓伪很,卻偏偏與公主長得像,于是被迫代替她去往敵國和親奋单。 傳聞我的和親對象是個殘疾皇子是掰,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 指令集 lua_capture_error_log lua_use_default_type lua_malloc...
    吃瓜的東閱讀 12,031評論 0 2
  • # Python 資源大全中文版 我想很多程序員應(yīng)該記得 GitHub 上有一個 Awesome - XXX 系列...
    aimaile閱讀 26,502評論 6 427
  • 今天早上,一個玩得很好的男性朋友給我打電話說:“姐辱匿,我要走了離開南昌了键痛,我不知道我要去哪里,去哪里才能不痛匾七⌒醵蹋” 我...
    鐘恒北北閱讀 549評論 0 2
  • “...現(xiàn)在呢?”我氣憤地大聲質(zhì)問媽媽昨忆。媽媽真是太讓我失望了丁频,她居然言而無信,我清清楚楚的記得爸爸去世的第3...
    SinaWang閱讀 545評論 1 2
  • 為什么 來不及說愛你叔磷? 折子:因為你濫情,愛的人太多了奖磁,還都是女人 子賤:我的話是缺少勇氣吧 闖哥:答案就一個改基,不...
    冬忘閱讀 727評論 0 6