使用 pip (Python) 查找过时的包
Find outdated packages using pip (Python)
使用pip list --outdated
命令使用 pip 查找过时的包。该--outdated
选项列出了所有过时的包。
壳
pip list --outdated pip3 list --outdated python -m pip list --outdated python3 -m pip list --outdated
–outdated选项列出所有过时的包。
您也可以使用速记
-o
,但它会降低命令的可读性。壳
# 👇️ list outdated packages pip list -o pip3 list -o
该pip list
命令列出所有已安装的包,包括可编辑的包。
壳
pip list
如果需要升级特定包,请使用该--upgrade
选项。
壳
pip install requests --upgrade pip3 install requests --upgrade python -m pip install requests --upgrade python3 -m pip install requests --upgrade
–upgrade选项将所有指定的包
升级到最新的可用版本。
您还可以使用简写-U
来升级一个或多个软件包。
壳
pip install requests -U pip3 install requests -U python -m pip install requests -U python3 -m pip install requests -U
升级所有过时包的最直接方法是使用 Python 脚本。
主程序
import pkg_resources from subprocess import call packages = [dist.project_name for dist in pkg_resources.working_set] call("pip install --upgrade " + ' '.join(packages), shell=True)
您可以将脚本存储在 Python 文件中,例如
main.py
并运行该文件python main.py
以升级所有过时的包。我们使用该str.join()
方法将包连接成一个字符串并将它们传递给pip install --upgrade
命令。
这与以下非常相似。
壳
pip install --upgrade requests numpy pandas pip3 install --upgrade requests numpy pandas
以下是可用于升级所有过时软件包的替代命令。
壳
# 👇️ macOS or Linux pip install -U `pip list --outdated | awk 'NR>2 {print $1}'` # 👇️ Windows for /F "delims= " %i in ('pip list --outdated') do pip install -U %i
第一个命令可以在 macOS 和 Linux 上使用,第二个命令可以在 Windows 上使用。
如果您在运行任何
pip
命令时遇到问题,请升级您的pip
.以下是pip
在所有操作系统上升级的命令。
哪个命令有效取决于您的操作系统和 Python 版本。
壳
# 👇️ if you have pip already installed pip install --upgrade pip # 👇️ if your pip is aliased as pip3 (Python 3) pip3 install --upgrade pip # 👇️ if you don't have pip in your PATH environment variable python -m pip install --upgrade pip # 👇️ if you don't have pip in your PATH environment variable python3 -m pip install --upgrade pip # 👇️ if you have easy_install easy_install --upgrade pip # 👇️ if you get a permissions error sudo easy_install --upgrade pip # 👇️ if you get a permissions error when upgrading pip pip install --upgrade pip --user # 👇️ upgrade pip scoped to the current user (if you get permissions error) python -m pip install --user --upgrade pip python3 -m pip install --user --upgrade pip # 👇️ Installing directly from get-pip.py (MacOS and Linux) curl https://bootstrap.pypa.io/get-pip.py | python # 👇️ if you get permissions issues curl https://bootstrap.pypa.io/get-pip.py | sudo python # 👇️ alternative for Ubuntu/Debian sudo apt-get update && apt-get upgrade python-pip # 👇️ alternative for Red Hat / CentOS / Fedora sudo yum install epel-release sudo yum install python-pip sudo yum update python-pip
升级 pip 后,也要升级setuptools
。
壳
pip install --upgrade setuptools pip3 install --upgrade setuptools python3 -m pip install --upgrade setuptools
如果您不使用虚拟环境,建议创建一个虚拟环境,因为它们可以更轻松地管理包。
壳
# 👇️ optionally store currently installed packages in a file pip freeze > requirements.txt pip3 freeze > requirements.txt # 👇️ use correct version of Python when creating VENV python3 -m venv venv # 👇️ activate on Unix or MacOS source venv/bin/activate # 👇️ activate on Windows (cmd.exe) venv\Scripts\activate.bat # 👇️ activate on Windows (PowerShell) venv\Scripts\Activate.ps1 # 👇️ Upgrade pip pip install --upgrade pip # 👇️ install packages in virtual environment pip install requests pandas # 👇️ optionally install packages from a `requirements.txt` file pip install -r requirements.txt pip3 install -r requirements.txt
确保根据您的操作系统使用正确的激活命令。
您的虚拟环境将使用用于创建它的 Python 版本。
虚拟环境就像一个独立的 Python 安装。当您
pip install <package-name>
在虚拟环境处于活动状态的情况下运行该命令时,您安装的软件包范围仅限于虚拟环境,而不是全局范围。
请注意,名称requirements.txt
只是一个约定。您可以使用 any 来存储pip freeze
命令的输出,并且您可以
requirements
根据需要拥有任意数量的文件。