在實際開發過程中,我們可能會遇到併發寫文件的場景,如果處理不當很可能出現文件內容亂序問題。下麵我們通過一個示常式序描述這一過程並給出解決該問題的方法。 ...
ubuntu 22.04 如果直接安裝python3,裝的是python3.10,但現在某外部程式依賴python3.8,所以需要重新安裝。
不推薦方法
網上常見方法是add-apt-repository添加 ppa:deadsnakes 源,但這樣會導致同時安裝python3.8和python3.10。可我不想有兩個版本。
命令如下:
# 這是不推薦的安裝方法,更推薦後面的安裝方法
# 因為安裝software-properties-common時會把python3.10安裝上去,這樣就存在兩個python3的版本了
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install -y python3.8 libpython3.8-dev python3.8-dev python3.8-distutils
推薦方法
更推薦以下安裝方法,不安裝software-properties-common,直接添加ppa:deadsnakes/ppa
# 推薦用這個方法
sudo echo 'deb https://launchpad.proxy.ustclug.org/deadsnakes/ppa/ubuntu/ jammy main' >>/etc/apt/sources.list
sudo apt-get update
# 這時會有個報錯提示:
# W: GPG error: https://launchpad.proxy.ustclug.org/deadsnakes/ppa/ubuntu jammy InRelease: The following signatures couldn't be verified because the public key is not available: # NO_PUBKEY BA6932366A755776
# E: The repository 'https://launchpad.proxy.ustclug.org/deadsnakes/ppa/ubuntu jammy InRelease' is not signed.
# 導入這個key,key的id從報錯信息里拿
sudo apt install -y gnupg
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA6932366A755776
sudo apt-get update
sudo apt-get install -y python3.8 libpython3.8-dev python3.8-dev python3.8-distutils
# 安裝 pip
wget https://bootstrap.pypa.io/get-pip.py
python3.8 get-pip.py
# 加下軟鏈接
sudo ln -s /usr/bin/python3.8 /usr/bin/python3
sudo ln -s /usr/bin/python3.8 /usr/bin/python
# 設置下國內鏡像源
sudo pip3 config set global.index-url https://mirrors.aliyun.com/pypi/simple