使用 pip (Python) 查找过时的包

使用 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

pip 查找过时的包

–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根据需要拥有任意数量的文件。

发表评论