【学习心得】几种特殊但非常必要学习的pip安装小知识

        在学习Python全栈的过程中要接触非常多的库,很多库都是直接pip install 就搞定了!但有一些总是特立独行!

一、安装时的名字与导包时名字不同的

首先举例大名鼎鼎的OpenCV

# 安装OpenCV
pip install opencv-python

# 导包
import cv2

再来一个大名鼎鼎的sklearn

# 安装
pip install scikit-learn

# 导包举例
from sklearn.preprocessing import StandardScaler

二、pip在install时候的几个参数

(1)升级到最新的包

如果你想要升级已安装的包到最新版本,可以使用 -U--upgrade 参数。

pip install -U requests

(2)忽略安装好的包并强制重新安装

如果你想忽略已经安装的包,并且强制重新安装它,可以使用 --ignore-installed 参数。

pip install --ignore-installed requests

【注】他不是忽略不安装已经装好的,而是我管你装没装过,统统重新装最新的。

(3)强制重新安装

使用 --force-reinstall 来确保即使包已经是最新的也会被重新安装。

pip install --force-reinstall requests

(4)减少输出信息只显示错误

使用 -q--quiet 参数,减少输出信息,只显示错误。

pip install -q requests

(5)输出更详细的信息

更详细的输出信息可以使用 -v--verbose 参数。

pip install -v requests

(6)可编辑模式进行安装

        当你从一个包含项目源代码的目录中安装时,使用 -e 可以让安装后的包仍然指向原始源文件的位置。这意味着如果你对源代码进行了修改,这些更改会立即反映在已安装的包中,而不需要重新安装。

# 比如进入llamafactory的项目路径下执行下面这个安装命令
pip install -e .
  • "-e":可编辑模式安装包。

  • ".":这里的点表示当前工作目录。也就是说,pip 会在当前目录下寻找 setup.py 或者 pyproject.toml 文件来确定如何安装该项目。这通常用于本地开发环境中的包安装,使得开发者可以直接从源代码运行程序,并且任何代码上的变化都会即时生效。

(7)从其他镜像源来安装

有时你需要从私人仓库或其他来源安装包。这时可以使用 -i--index-url 参数来指定自定义的URL。

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

--index-url 其实就是 -i

(8)按照约束文件来安装

        这个和使用需求文件来安装有点像。回顾一下,通过 -r--requirement 参数,可以从一个需求文件中读取包列表并安装它们。

        但约束文件用于在安装过程中限制包的版本,而不像需求文件那样强制特定版本。这意味着 pip 仍然会尝试找到满足所有依赖关系的最佳版本组合,但不会超过约束文件中定义的版本范围。你可以使用 -c--constraint 参数来指定约束文件。

pip install -c constraints.txt

(9)禁用缓存的方式每次去源下载

当你想要禁用 pip 的包下载缓存时,可以使用 --no-cache-dir 参数。这在你希望确保每次都从网络获取最新版本的包,或者在某些环境中磁盘空间有限的情况下特别有用。

pip install --no-cache-dir requests

三、安装过程中避免多个包的依赖有版本冲突

PEP 517 定义了一种标准方式来构建 Python 包,它引入了构建隔离的概念,即在一个独立的临时环境中进行构建以避免与全局环境冲突。然而,在某些情况下,你可能希望禁用这种隔离,例如当你需要构建过程能够访问当前环境中的已安装包时(如一些特定的开发工具或库)。

举个例子说明:假设你有一个大模型项目依赖于pytorch2.1版本的库,该版本库是你的项目的构建过程中必需的。此时你在安装其他的同样依赖pytorch的包时,可以使用 --no-build-isolation 来让构建过程可以看到全局环境中已经安装的这个库。这样它就不会莫名其妙的把你的2.1版本torch给升级成最新版。

pip install -e . --no-build-isolation

上面这个命名达到的效果是:

  • 它将以可编辑模式安装(-e)位于当前目录下的 Python 包。
  • 安装过程中不会创建一个新的、隔离的构建环境(--no-build-isolation);相反,它将利用现有的 Python 环境及其所有已安装的依赖项来进行构建。

你可能感兴趣的:(【学习心得】,学习,pip,python)