我最近使用命令行将一台计算机从Ubuntu Server 16.04 LTS升级到了18.04 LTS。结果,内置的Python安装从Python 3.5升级到了3.6。而且似乎所有先前使用pip3
安装的Python软件包都不再可用。我计划清理所有这些软件包,并将conda
用于Python软件包管理。我的问题是,在这种情况下彻底卸载那些无法访问的软件包的最佳做法是什么?
通过pip3
安装的旧软件包主要位于/usr/local/lib/python3.5/
和~/.local/lib/python3.5/
下。但是可能还有其他剩余文件,例如在/usr/local/bin/
下。我想删除pip3 install
随附的所有相关文件。
答案 0 :(得分:0)
sudo pip install
将pip软件包安装到/usr/local/lib/<python_version>/dist-packages
,并将apt软件包安装到/usr/lib/<python_version>/dist-packages
。检查这些目录并删除不需要的软件包。
答案 1 :(得分:0)
我最终写了一个bash脚本来迭代地对每个先前安装的软件包调用pip3 uninstall
。
#!/bin/bash
pypath_cmd="PYTHONPATH=$HOME/.local/lib/python3.5/site-packages"
export $pypath_cmd
echo "Uninstalling editable packages in $PYTHONPATH"
rm -f $PYTHONPATH/*.egg-link
rm -f $PYTHONPATH/easy-install.pth
pip3 freeze --all --local | cut --delimiter="=" -f 1 | while read pkg ; do
echo $pkg: $(pip3 show $pkg | grep "Location:")
pip3 uninstall -y $pkg
done
pypath_cmd="PYTHONPATH=/usr/local/lib/python3.5/dist-packages"
export $pypath_cmd
echo "Uninstalling editable packages in $PYTHONPATH"
sudo rm -f $PYTHONPATH/*.egg-link
sudo rm -f $PYTHONPATH/easy-install.pth
pip3 freeze --all --local | cut --delimiter="=" -f 1 | while read pkg ; do
echo $pkg: $(pip3 show $pkg | grep "Location:")
sudo $pypath_cmd pip3 uninstall -y --no-cache-dir $pkg
done