python相关-连载中
python相关
通过apt安装高版本python3及pip3(推荐)
添加ppa
sudo add-apt-repository ppa:deadsnakes/ppa
更新缓存
sudo apt update
安装python3
sudo apt install python3.11
安装pip3
sudo apt install python3-pip
设置pip镜像源
临时
pip3 install 包名 -i 镜像源地址
永久
pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
常见镜像源
http://mirrors.aliyun.com/pypi/simple/
http://pypi.douban.com/simple/
https://pypi.tuna.tsinghua.edu.cn/simple/
http://pypi.mirrors.ustc.edu.cn/simple/
如果系统内初始没有python3,可直接使用,如果需要更换python版本,需要修改/usr/bin/python3
软链接路径,解决办法见文末
编译安装
先安装依赖
sudo apt install make libssl-dev unzip libreadline-dev libgdbm-dev libffi-dev liblzma-dev libsqlite3-dev zlib1g-dev libbz2-dev openssl zlib1g zlib1g-dev libffi-dev build-essential
下载源码
python源码仓库
https//www.python.org/ftp/python/
选择需要安装的版本(以3.12.1为例)
wget https://www.python.org/ftp/python/3.12.1/Python-3.12.1.tgz
解压源码
tar -zxvf Python-3.12.1.tgz
初始化
cd Python-3.12.1
./configure --prefix=/usr/local/python3 --enable-shared
其中prefix参数设置安装位置,可根据实际情况更改
开始编译
make -j$(nproc)
安装
sudo make install
软链接到默认python3
使用which可以看到默认的python3/pip3位于/usr/bin/python3
/usr/bin/pip3
hu@redmi2:~$ which python3
/usr/bin/python3
hu@redmi2:~$ which pip3
/usr/bin/pip3
使用find命令查找新安装的python位置
hu@redmi2:~$ sudo find / -name python3.12
[sudo] hu 的密码:
/home/hu/.local/lib/python3.12
/usr/local/python3/lib/python3.12
/usr/local/python3/bin/python3.12
/usr/local/python3/include/python3.12
显然,在/usr/local/python3/bin/python3.12
也就是安装时选择的位置
查看/usr/local/python3/bin
可以看出,对应的pip3也在其中
hu@redmi2:~$ ls /usr/local/python3/bin
2to3 2to3-3.12 idle3 idle3.12 pip3 pip3.12 pydoc3 pydoc3.12 python3 python3.12 python3.12-config python3-config
删除默认python的软链接
sudo rm /usr/bin/python3 /usr/bin/pip3
建立新的软链接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
验证
hu@redmi2:~$ python3 -V
Python 3.12.1
hu@redmi2:~$ pip3 -V
pip 23.2.1 from /usr/local/python3/lib/python3.12/site-packages/pip (python 3.12)
可能遇到的问题
添加共享库
hu@redmi2:~/Python-3.12.1$ /usr/local/python3/bin/python3 -V
/usr/local/python3/bin/python3: error while loading shared libraries: libpython3.12.so.1.0: cannot open shared object file: No such file or directory
询问GPT知,缺少共享库,将python3.12的共享库放入环境变量文件~/.bashrc
中即可
export LD_LIBRARY_PATH=/usr/local/python3/lib:$LD_LIBRARY_PATH
去除pip警告
pip安装包时提示建议使用虚拟环境
hu@hu:~$ pip3 install numpy
error: externally-managed-environment
× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.
If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.
If you wish to install a non-Debian packaged Python application,
it may be easiest to use pipx install xyz, which will manage a
virtual environment for you. Make sure you have pipx installed.
See /usr/share/doc/python3.11/README.venv for more information.
note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
可以直接删除警告
sudo mv /usr/lib/python3.x/EXTERNALLY-MANAGED /usr/lib/python3.x/EXTERNALLY-MANAGED.bk
3.x换成正在使用的python版本
也可以按照提示安装pipx代替pip
sudo apt install pipx
之后添加到环境变量中pipx ensurepath
License:
CC BY 4.0