第一部分
1.确保系统已安装必要的构建工具和依赖项:
bash
Copy code
sudo apt update
sudo apt install build-essential checkinstall \
libreadline-gplv2-dev libncursesw5-dev libssl-dev \
libsqlite3-dev tk-dev libgdbm-dev libc6-dev \
libbz2-dev libffi-dev zlib1g-dev
sudo apt-get install build-essential libssl-dev zlib1g-dev libncurses5-dev libncursesw5-dev libreadline-dev libsqlite3-dev libgdbm-dev libdb5.3-dev libbz2-dev libexpat1-dev liblzma-dev libffi-dev
2.下载 Python 3.6.4 源代码包:
bash
Copy code
cd ~
wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz(需要解决ssl问题,所以直接安装3.8.0)
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
3.解压源代码包并进入解压后的目录:
bash
Copy code
tar -xf Python-3.6.4.tgz
cd Python-3.6.4
4.配置 Python 的安装选项,并添加 --prefix=/usr/local 以避免覆盖系统自带的 Python:
bash
Copy code
./configure --enable-optimizations --prefix=/usr/local (/usr/local/python3 此处为提前建好的目录)
./configure --enable-optimizations --prefix=/usr/local/python3
5.编译并安装 Python:
bash
Copy code
make -j8
sudo make altinstall (注意是altinstall,避免覆盖系统自带的)
确认 Python 3.6.4 安装成功:
bash
Copy code
python3.6 --version
您应该能够看到输出显示 Python 3.6.4 的版本信息。
gedit ~/.bashrc
export PATH=/usr/local/python3/bin:$PATH"
source ~/.bashrc
python3.8 -V
第二部分:
安装对应的 pip:
bash
Copy code
cd ~
wget https://bootstrap.pypa.io/get-pip.py
sudo python3.6 get-pip.py
现在,您已成功安装 Python 3.6.4 和对应的 pip。您可以使用 python3.6 命令来运行 Python 3.6.4,并使用 pip3.6 命令来安装 Python 3.6.4 版本的软件包。请注意,系统自带的 Python 版本仍然可通过 python 命令访问,而 Python 3.6.4 则通过 python3.6 命令访问。
第三部分:
在执行 make clean 后,它会清理掉之前的编译文件和生成的目标文件,但不会删除已经安装的 Python。如果你需要完全清除刚刚的配置和安装,可以按照以下步骤进行:
执行 make clean 命令清理编译文件:
bash
Copy code
make clean
进入 Python 源代码目录,执行以下命令以删除已编译的 Python 文件和目录:
bash
Copy code
rm -rf build/
rm -rf install/
删除 Python 安装目录下的相关文件和目录。根据之前的安装过程,Python 安装目录可能在 /usr/local/bin/python3.6 或 /usr/local/python3.6 或其他自定义路径。使用适当的路径替换以下命令中的 <python_installation_path>:
bash
Copy code
rm -rf <python_installation_path>
确保还原了原始的 Python 配置文件。如果你之前修改了任何 Python 相关的配置文件,例如 /etc/profile 或 ~/.bashrc,请还原它们为初始状态。
通过执行上述步骤,你应该能够完全清除之前的 Python 配置和安装。请注意,在进行这些操作之前,确保你了解自己在做什么,并且确保备份了重要的文件和数据。
3.8 完整版
./configure --prefix=/usr/local/python3 --enable-optimizations
make -j8
sudo make altinstall
在这一步中,我们使用 --prefix=/usr/local/python3 选项来指定安装目录为 /usr/local/python3。
添加 Python 3.8.0 的路径到系统的 PATH 环境变量:
打开 ~/.bashrc 文件:
shell
Copy code
nano ~/.bashrc
在文件末尾添加以下行:
shell
Copy code
export PATH="/usr/local/python3/bin:$PATH"
保存并关闭文件,然后执行以下命令使更改生效:
shell
Copy code
source ~/.bashrc
安装 pip:
shell
Copy code
wget https://bootstrap.pypa.io/get-pip.py
sudo /usr/local/python3/bin/python3.8 get-pip.py
使用 /usr/local/python3/bin/python3.8 来运行 get-pip.py 脚本,以确保将 pip 安装到正确的 Python 3.8.0 环境中。
验证安装:
运行以下命令来验证 Python 3.8.0 和 pip 是否成功安装:
shell
Copy code
/usr/local/python3/bin/python3.8 --version
/usr/local/python3/bin/pip3.8 --version
这应该显示 Python 3.8.0 和 pip 的版本信息。
安装完成后,您可以使用 /usr/local/python3/bin/python3.8 命令来运行 Python 3.8.0,使用 /usr/local/python3/bin/pip3.8 命令来安装 Python 3.8.0 版本的包。
请注意,如果您在其他 shell 中使用,例如 zsh 或其他非默认 shell,您需要修改相应的配置文件(例如 ~/.zshrc)并执行相应的 source 命令使其生效。
通过将 Python 3.8.0 和 pip 安装到 /usr/local/python3 目录,您可以将其与系统自带的 Python 版本隔离开来,
如果报错:
pip3.8 --version
Traceback (most recent call last):
File "/usr/local/python3/bin/pip3.8", line 6, in <module>
from pip._internal import main
ValueError: source code string cannot contain null bytes
执行步骤:
sudo mv pip3.8 pip3.8_bak
wget wget https://bootstrap.pypa.io/get-pip.py
sudo /usr/local/python3/bin/python3.8 get-pip.py
pip3.8 -V (成功)
kv@kv-System-Product-Name:~$ sudo /usr/local/python3/bin/python3.8 get-pip.py
WARNING: The directory '/home/kv/.cache/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you should use sudo's -H flag.
Collecting pip
Downloading pip-23.1.2-py3-none-any.whl (2.1 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 1.5 MB/s eta 0:00:00
Collecting wheel
Downloading wheel-0.40.0-py3-none-any.whl (64 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 64.5/64.5 kB 83.3 MB/s eta 0:00:00
Installing collected packages: wheel, pip
Attempting uninstall: pip
Found existing installation: pip 19.2.3
Uninstalling pip-19.2.3:
Successfully uninstalled pip-19.2.3
Successfully installed pip-23.1.2 wheel-0.40.0
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv