python源码剖析, 第0部分 -- 编译python
生活随笔
收集整理的這篇文章主要介紹了
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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 黑苹果MacOS Big Sur 11.
- 下一篇: python源码深度剖析_Python源