Hexo

凡事预则立,不预则废


  • Home

  • Tags

  • Archives

  • Navigation

  • Search

Python——使用pip管理包

使用 pip 管理 Python 包的常见用法如下:


管理包(安装、升级、卸载和查看等)

  • 安装最新版本:

    1
    pip install package_name
  • 安装指定版本:

    1
    pip install package_name==1.2.3
  • 从本地文件安装:

    1
    pip install /path/to/package.whl
  • 从 GitHub 安装:

    1
    pip install git+https://github.com/user/repo.git
  • 升级到最新版本:

    1
    pip install --upgrade package_name
  • 卸载包:

    1
    pip uninstall package_name
    • 添加 -y 参数(--yes)可以免除交互指令:
      1
      pip uninstall package_name -y
  • 查看某个包的详细信息:

    1
    pip show package_name
  • 列出所有已安装的包:

    1
    pip list

搜索包

  • 搜索包:

    1
    pip search package_name
    • 这个命令已经弃用,现在需要访问官网才行 https://pypi.org/
  • 搜索包版本:

    1
    pip index versions package_name

检查包更新

  • 检查哪些包需要更新:
    1
    pip list --outdated

配置镜像源

  • 临时使用镜像源:

    1
    pip install package_name -i https://pypi.tuna.tsinghua.edu.cn/simple
  • 永久配置镜像源:

    1
    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

其他常用命令

  • 查看帮助:

    1
    pip --help
  • 查看版本:

    1
    pip --version

用pip批量导出或安装环境配置

  • 可以使用 pip freeze 命令导出当前 Python 环境的配置

  • 下面的pip freeze 命令将在当前目录下创建一个名为 requirements.txt 的文件,并写入当前环境中已安装的所有包及其版本信息 :

    1
    pip freeze > requirements.txt
  • 下面的命令可以在任何地方根据 requirements.txt 中列出的包及其版本信息重新安装所有必需的包,从而重建相同的环境(其中-r参数用于指定依赖性的文件名):

    1
    pip install -r requirements.txt

从源码安装包

  • 以通过源码安装transformers为例子
  • clone仓库 :git clone https://github.com/huggingface/transformers.git
  • 进入目录 :cd transformers
  • 安装依赖(准备项) :确保你的Python环境中已经安装了setuptools等必要的依赖。如果没有安装,可以先使用pip install setuptools进行安装
  • 安装(推荐方式) :pip install .
    • 注意:这种方式会将transformers安装到你的Python环境中,但如果后续你对源码进行了修改,需要重新执行安装命令才能使修改生效
    • 其他安装方式(可编辑安装) :pip install -e .命令,该命令会将克隆的仓库链接到你的Python库路径,这样Python不仅会在正常的库路径中搜索库,也会在你克隆到的文件夹中进行查找,方便修改后生效
  • 安装完成后,对于还未发行的版本,版本名称可能是带有后缀.dev等的(依赖可能识别不了)

卸载方式

  • 和普通的安装包一样,可以通过 pip uninstall 卸载源码安装的安装包

    1
    pip uninstall package_name
    • package_name 可通过 pip list 查看

附录:安装带 -e 的含义

  • 是否使用 -e 在安装方式和后续开发行为上有本质区别
  • 具体来说 pip install . 和 pip install -e . 都是用来安装当前目录下的 Python 包的命令,但安装本质不同
pip install . (标准安装)
  • 将当前目录(. 代表当前目录)下的 Python 包进行复制安装(静态)
  • 安装过程 :
    • 1)pip 会查找当前目录中的 setup.py 或 pyproject.toml 文件
    • 2)根据配置,将包的源代码复制到 Python 环境的 site-packages 目录下
    • 3)同时安装包的依赖项
  • 安装后,你在项目源码中做的任何修改,不会自动反映到已安装的包中,即不可编辑
    • 如果你修改了源代码,必须重新运行 pip install . 来更新已安装的包,才能让改动生效
  • 当你准备发布一个稳定版本时,通常使用这种方式
pip install -e . (可编辑安装 / 开发安装)
  • -e 是 --editable 的缩写,进行的是可编辑安装或开发安装(动态链接)
  • 安装过程 :
    • 1)pip 同样查找 setup.py 或 pyproject.toml
    • 2)它不会复制源代码,而是在 site-packages 目录下创建一个指向你当前项目目录的符号链接(symlink) 或特殊的 .pth 文件
    • 3)这样,Python 解释器在导入这个包时,会直接从你的项目源码目录加载模块
  • 你在项目源码中做的任何修改,立即生效 ,不需要重新安装,即是可编辑的
    • 非常适合在开发过程中使用,可以快速测试代码变更
  • 包的依赖项仍然会被安装到环境中
  • 包的“安装位置”就是开发目录,删除开发目录会导致包“消失”

附录:安装包的用法

常规用法

  • 使用普通命令足以

    1
    pip install package==1.1.0
  • 若已经安装有包(不管是升级还是降级均可),想要强制重新安装,使用:

    1
    pip install package==1.1.0 --force-reinstall
  • 已经有包的情况下,也可以使用:

    1
    2
    pip3 uninstall package
    pip3 install package==1.1.0

推荐用法

  • 升级包时使用 --upgrade 参数,确保升级操作能够执行

    1
    pip install --upgrade package==1.1.0
    • 若没有 --upgrade 参数可能会默认不安装,因为认为当前包已经符合版本(高于目标版本)
  • 降级包时加一个强制参数

    1
    pip install package==1.1.0 --force-reinstall

Python——函数返回值是copy还是引用

Python中有些函数是直接操作当前对象的,有些函数是操作副本的


操作当前对象的

  • list.sort(), 返回空
  • random.shuffle(my_list), 返回空
  • func(inplace=True), 这里Pandas库中的其他方法几乎均适用

返回copy的

  • 除了numpy的reshape()外目前默认都为
  • sorted(), 内置函数,返回新对象,不论接受什么参数返回的都是列表
  • np.ndarray.reshape() 返回新对象,但是新对象除了shape属性外,数据属性是和原始对象共享的
    • np.ndarray存储着数据和一个shape属性
    • 我们可通过修改shape属性而不是创建新对象来修改当前对象的shape object.shape = 3,4
    • 使用reshape时可以理解为创建了一个新对象,但是共享了数据,两个ndarray对象有相同的数据引用
    • numpy包没有array类,只有ndarray类,array是一个函数,用于构造ndarray,也可以用ndarray函数构建,但是不推荐,测试ndarray函数发现用法很奇怪
1…273274275…352
San Ye

San Ye

Stay Hungry. Stay Foolish.

704 posts
53 tags
© 2026 San Ye
Powered by Hexo
|
Theme — NexT.Gemini v5.1.4