python3源码编译安装
Python3源码结构
Python源码目录结构
Include:Python所有的头文件,写C/C++扩展时需要
- Lib:Python自带的标准库,Python语言编写
- Modules:由C语言编写的模块,如ctypes、mutltiprocessing等
- Parser: Python解释器的Scanner和Parser,即Python的词法分析和语法分析
- Objects:Python的内建对象的实现、包括list、dict等
- Python:Python解释器的Compiler和执行引擎
- PCBuild:Visual Studio工程文件
Linux下编译
1.编译环境准备
折腾模式
http://askubuntu.com/questions/21547/what-are-the-packages-libraries-i-should-install-before-compiling-python-from-so
包名 | 描述 |
---|---|
build-essential | Info list of build-essential packages |
libz-dev–>zlib1g-dev | compression library |
libreadline-dev | GNU readline and history libraries |
libncursesw5-dev | developer’s libraries for ncursesw |
libssl-dev | SSL development libraries |
libgdbm-dev | GNU dbm database routines |
libbz2-dev | high-quality block-sorting file compressor library |
libc6-dev | Embedded GNU C Library |
libsqlite3-dev | SQLite 3 development files |
liblzma-dev | XZ-format compression library |
包查看:http://packages.ubuntu.com/
ncurses提供字符终端处理库
build-essential is a package which contains references to numerous packages needed for building software in general.(一个包含了编译debian包必需的大部分组件,如gcc、libc)
cat /usr/share/doc/build-essential/list
12 $ sudo apt-get installbuild-essential$ sudo apt-get installbuild-essential --fix-missing
偷懒方式:
https://docs.python.org/devguide/setup.html#compiling
ON Ubuntu
apt-get build-dep命令在编译安装软件时,自动安装相关的编译环境,比一堆apt-get install XXXX XXXX XXXX … 来进行安装,能更好的管理这些库文件和编译环境。
好习惯:记录下build-dep安装的包:
ON RHEL
- 下载
|
|
- 解压
|
|
- 编译安装
|
|
(5).安装pip
一般直接使用虚拟环境virtualenv or pyvenv.它们直接安装pip了
|
|
- 建立虚拟环境
使用Python开发,建立项目的虚拟环境是一个非常好的习惯,Python3.5自带pyvenv工具,所以不需要再安装virtualenv
- 创建环境
- 1/usr/local/python35/bin/pyvenv py3venv
启动
1source ./py3venv/bin/activate退出
1deactivate
进入到py3venv环境,pip安装requests试试
Windows下编译
使用Visual Studio2015打开PCBuild目录下的pcbuild.sln即可,整个方案共有30多个项目,在研究Python源码时重点关注:
- Python
- Pythoncore
右击解决方案-> 属性->配置属性->只选取上面两个子项目->生成解决方案
按照上述简单步骤即可完成Python核心的编译,生成Python.exe
接下来结合Python源码剖析开始浅读Python3的源码。