直接运行安装程序即可安装,指定安装路径,在系统PATH中最靠前的Python就是默认的Python,安装的时候也可以指定不把安装路径加到PATH当中,创建虚拟环境时自己指定希望的Python路径
以下步骤在Debain10上验证
更新源,安装依赖
sudo apt-get install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev curl
下载Python的代码,这里提供一个地址
curl -O https://www.python.org/ftp/python/3.8.2/Python-3.8.2.tar.xz
解压源码
tar -xf Python-3.8.2.tar.xz
到源码目录,执行configure(编译前的检查,生成Makefile)
./configure –enable-optimizations
编译(-j参数指定的编译的核心数,nproc可以查询CPU核心数)
make (-j 32)
安装(主要要用altinstall,否则会覆盖原来的Python)
sudo make altinstall
运行
python3.8 --version
说明:
事实上Python的2或3解释器都是Python,在Ubuntu上默认情况下要用Python3的原因是,Python3是一个链接器,链接到了一个版本号为3.x的Python(可执行程序后面跟了版本号)。
在Windows上自己安装好之后,解释器就是Python,所以路径要标记好是哪一个版本的Python,不用去修改默认环境的Python,创建虚拟环境的时候按照路径指定我们需要的即可。
Python的基础工具(pip、pip2pi等),和Python保持一致,使用的是哪个Python,就是它对应的一套工具。默认环境中,Python是对应的Python2,所以要使用Python3命令,pip也要显式使用pip3。最好用类似python -m pip这样的命令,确保执行的是对应Python的包、工具。
暂时未经验证(使用APT安装的方法可以参考一下Docker的笔记):
sudo apt update apt-cache search python3.8 # 看看能不能找到 python3.8 这个包 #根据系统版本,支持的Py版本范围也不同,自己搜一下能找到哪些可用的Py版本 sudo apt install python3.8 python3.8 --version sudo apt install python3.8-dev python3.8-venv # 顺便安装这两个
安装完成后,可能没有pip,参照Pip页面进行安装
在Python的官网直接找到对应版本的安装文件,比如:python-3.8.10-macos11.pkg,下载安装
安装好之后的位置在:/usr/local/bin
python3.8 -> ../../../Library/Frameworks/Python.framework/Versions/3.8/bin/python3.8
或者这样找到安装位置(这里应该发现了,Mac和Linux的实际安装位置是不一样的,Mac在/usr/local/bin下的是一个link)
anny@annys-MacBook-Air lib % which python3 /Library/Frameworks/Python.framework/Versions/3.11/bin/python3 anny@annys-MacBook-Air lib % which python3.11 /Library/Frameworks/Python.framework/Versions/3.11/bin/python3.11 anny@annys-MacBook-Air lib % which python3.8 /Library/Frameworks/Python.framework/Versions/3.8/bin/python3.8 anny@annys-MacBook-Air lib % source ~/pyenv/py38/bin/activate (py38) anny@annys-MacBook-Air lib % which python /Users/anny/pyenv/py38/bin/python
同理可以找到Python的头文件安装在这里:/Library/Frameworks/Python.framework/Versions/3.8/include/python3.8
Python的这些头文件,在和C++绑定的时候可能会用到(在C++端)
另外使用命令[python -m sysconfig]可以查看系统配置(在venv内部就是python不是python3),这个应该是受venv控制的,可以查看各种安装路径之类的信息;或者这样使用sysconfig
import sysconfig print(sysconfig.get_path("include"))
创建venv之后使用:
anny@annys-MacBook-Air bin % cd ~/Desktop anny@annys-MacBook-Air Desktop % /usr/local/bin/python3.8 --version Python 3.8.10 anny@annys-MacBook-Air Desktop % /usr/local/bin/python3.8 -m pip install virtualenv Collecting virtualenv Downloading virtualenv-20.27.1-py3-none-any.whl (3.1 MB) |████████████████████████████████| 3.1 MB 574 kB/s Collecting platformdirs<5,>=3.9.1 Using cached platformdirs-4.3.6-py3-none-any.whl (18 kB) Collecting distlib<1,>=0.3.7 Downloading distlib-0.3.9-py2.py3-none-any.whl (468 kB) |████████████████████████████████| 468 kB 6.6 MB/s Collecting filelock<4,>=3.12.2 Using cached filelock-3.16.1-py3-none-any.whl (16 kB) Installing collected packages: platformdirs, filelock, distlib, virtualenv WARNING: The script virtualenv is installed in '/Library/Frameworks/Python.framework/Versions/3.8/bin' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location. Successfully installed distlib-0.3.9 filelock-3.16.1 platformdirs-4.3.6 virtualenv-20.27.1 WARNING: You are using pip version 21.1.1; however, version 24.3.1 is available. You should consider upgrading via the '/usr/local/bin/python3.8 -m pip install --upgrade pip' command. anny@annys-MacBook-Air Desktop % /usr/local/bin/python3.8 -m venv py38 anny@annys-MacBook-Air Desktop % source ./py38/bin/activate (py38) anny@annys-MacBook-Air Desktop % python --version Python 3.8.10