在 Ubuntu 上“编译 Python 源码”通常有两种理解,我分别说明,你可以按需要选择。
适用于:想安装指定版本 Python、学习源码、或默认 apt 版本太旧。
sudo apt update
sudo apt install -y \
build-essential \
libssl-dev \
zlib1g-dev \
libbz2-dev \
libreadline-dev \
libsqlite3-dev \
wget \
curl \
llvm \
libncursesw5-dev \
xz-utils \
tk-dev \
libxml2-dev \
libxmlsec1-dev \
libffi-dev \
liblzma-dev
以 Python 3.12.1 为例:
cd /tmp
wget https://www.python.org/ftp/python/3.12.1/Python-3.12.1.tgz
tar -xf Python-3.12.1.tgz
cd Python-3.12.1
./configure --enable-optimizations --prefix=/usr/local/python312
说明:
--enable-optimizations:开启性能优化(编译慢)--prefix:安装路径,避免覆盖系统 Pythonmake -j$(nproc)
sudo make install
/usr/local/python312/bin/python3 --version
建议用 venv 或 pyenv,不要替换系统 python3。
如果你是想把 .py 编译成可执行文件或字节码:
python3 -m py_compile test.py
生成:
__pycache__/test.cpython-312.pyc
常用工具:
示例(PyInstaller):
pip install pyinstaller
pyinstaller -F test.py
步骤和第一部分一样,只是:
git clone https://github.com/python/cpython.git
cd cpython
./configure --with-pydebug
make -j$(nproc)
./python
如果你能补充一下:
我可以给你更精确的命令。