python原始碼編譯

2022-03-15 10:50:57 字數 1130 閱讀 1600

**

嘗試通過原始碼自己編譯 python,使用的系統是 ubuntu14.04 lts。

tar -zxvf python-2.7.12.tgz

可以看到目錄結構如下:

其中,我們比較關注的幾個目錄是:

我並不只是想嘗試簡單的通過原始碼編譯安裝,那麼,在編譯之前,我們先對它做一點小小的改動吧。今天先不做太複雜的事情,嘗試一下「顛倒黑白」吧。所謂顛倒黑白,就是在輸出(只有輸出時)bool 型變數時,將 true/false 對調。關於輸出 bool 變數的 c 語言實現,在 objects/boolobject.c 的第 7-14 行,如下:

static int

bool_print(pyboolobject *self, file *fp, int flags)

可以看出,對於輸出 true 還是 false 的判斷是用三元運算子self->ob_ival == 0 ? "false" : "true",那麼,其實改動就非常容易了:

fputs(self->ob_ival != 0 ? "false" : "true", fp);

將比較運算子做一點小改動,就「顛倒黑白」啦。然後執行:

./configure --prefix=/path/u/what/to/install

make

make install 

第一條命令的--prefix=後面是你想要安裝的位置,你可以自行調整。等待執行完畢,就安裝好啦,進入指定的目錄,目錄結構如下:

想要執行的話,執行bin/python即可,你也可以將其加入到 path 中,不過還是不建議去搞亂系統那個。好了,用我們自己編譯的直譯器執行幾條語句吧:

>>> print true

false

>>> print false

true

>>> print 3 > 5

true

>>> print 1 == 2

true

很明顯,已經「顛倒黑白」啦。

python編譯器原始碼 編譯python原始碼

回望2020,你在技術之路上,有什麼收穫和成長麼?對於未來,你有什麼期待麼?雲 社群年度徵文,各種定製好禮等你!對python原始碼進行編譯1.生成.pyc檔案import py compilepy compile.compile hello.py 2.優化原始碼檔案python o m py co...

手動編譯原始碼安裝mysql 原始碼編譯安裝mysql

1 安裝mysql需要的依賴包 yum y install ncurses devel libaio devel 2 安裝編譯mysql需要的軟體 mysql 有3個版本分支 5.0 5.1系列 5.4 5.7系列 6.0 7.1群集產品系列 最早的mysql 5.0 5.1產品 直接.config...

chromium 原始碼編譯

以下內容基於 linux ubuntu3.0.0 16 generic 28 ubuntu smp fri jan 27 17 44 39 utc 2012 x86 64 gnu linux 參考網頁給出的步驟 1 安裝 depot tools,cd 到你想要的工作目錄 1.1 通過 svn 獲取 ...