日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python源码剖析, 第0部分 -- 编译python

發(fā)布時間:2023/12/10 python 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python源码剖析, 第0部分 -- 编译python 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1. python版本選擇

python2.7的代碼太遠(yuǎn)古了, 在vs2019里重定向編譯也有很多錯誤, 不想管了, 就直接用比較新的3.7的代碼了
python3.7源碼

2. python源碼編譯

參考文章, 把代碼編譯成功:
.Windows Visual Studio 2019 編譯 Python 3.7.12 及 Python 3.10.0 源碼
看Python 3.7.12 源碼編譯部分就行了, 大差不差

3. 代碼更改

更改源碼. 在print方法里面, 加上我們自定義的前綴:

// 搜索如下方法: static PyObject * builtin_print(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames) {.........// 輸出我們自定義的內(nèi)容PyFile_WriteString("this is our print\n", file);for (i = 0; i < nargs; i++) {if (i > 0) {if (sep == NULL)err = PyFile_WriteString(" ", file);elseerr = PyFile_WriteObject(sep, file,Py_PRINT_RAW);if (err)return NULL;}// 具體的輸出內(nèi)容err = PyFile_WriteObject(args[i], file, Py_PRINT_RAW);if (err)return NULL;}// 分行輸出if (end == NULL)err = PyFile_WriteString("\n", file);elseerr = PyFile_WriteObject(end, file, Py_PRINT_RAW);if (err)return NULL; }

更改代碼后編譯運行:

總結(jié)

以上是生活随笔為你收集整理的python源码剖析, 第0部分 -- 编译python的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。