不用 pip install,你养我吗?

【python】pip install 失败解决方法 python -m pip install --upgrade pip更新同样失败 C:\Users\SXY>pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple/ Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple/ Collecting... 阅读详情

我们在开发 Python 项目的时候,我们总会使用到这么几个玩意:

pip

当你创建一个 Python 项目的时候,你会先整一个虚拟环境(virtualenv),在这里面使用到的第三方模块,版本等,都只作用于你这个项目当前的环境,和其他的项目互不干扰。

比如,你可以创建一个 Python3 的虚拟环境:

图片

 

现在,你的 Python 项目「my_project」就拥有了自己的 Python3 环境,你可以在这里面为所欲为,这样好处是,在这里面所有的操作都不会和外界产生不必要的麻烦,比如你在这里使用 pip 安装的模块,就是只作用于这个环境中的,不会和你的系统搞得乱七八糟:

图片

 

当你项目开发完成,想要给别人使用,或者在生产环境中运行时,你可以使用 pip 将项目中使用到的库生成一个 「requirements.txt」文件:

pip freeze > requirements.txt

这时候你当前项目下会生成一个 requirements.txt 文件,这里面列出来的就是你这个项目用到的库以及相关的版本:

图片

 

那么,当别人要使用你这个项目的时候,只需要使用如下命令就可以安装你这个项目中所有依赖的库:

pip install -r requirements.txt

但是,经过一段时间会发现,你需要经常去修改 「requirements.txt」中的内容才能让开发环境和生产环境相一致,比如说,你在你的项目中引用了两个第三方库,而它们又引用了相同的库,但是版本不同,那么在生产环境中就可能出问题。

假设你项目引用了 「requests」和「click」库,而它们都引用了一个叫做「帅b」的库。但是它们使用的版本不一样,比如 「requests」 用的是 「帅b」1.0 版本:

帅b==1.0

而 「click」 用的是 2.0 版本

帅b==2.0

这时候,生产环境想通过 pip install -r requirements.txt 来安装依赖库,但 pip 发现现在「帅b」的最新版本是 3.0,然后直接懵逼了,我特么到底要安装了 「帅b」1.0 版本还是 2.0 版本还是 3.0 版本?

pip 这时候只能把先看到的那个安装一波,先把 「帅b==1.0」给安装了,然后再安装一个最新的版本「帅b==3.0」。

那么现在生产环境是没有「帅b==2.0」版本的,假设 click 库只能用「帅b2.0」以下的版本,那么这时候在生产环境就用不了 click 的功能,项目扑街。

图片

 

于是,你需要去修改「requirements.txt」,比如改成这样规定它不要乱来:

帅b>=1.0,<=2.0

那如果有很多这样的情况,岂不是得叫爸爸了啊!

图片

 

有没有更好的使用方式,让 Python 项目的包管理更爽呢?

接下来小帅b要给你分享的是:pipenv。这名字看起来是 pip + virtualenv,不过 pipenv 比他们更好用,它可以让你的包管理更加的顺滑酸爽。

接下来小帅b带你体验一波,首先你得先安装好 pipenv:

pip install pipenv

pipenv 使用虚拟环境

现在,我们创建虚拟环境是这样的,进入你的项目,使用:

pipenv install

图片

 

可以看到,我们把虚拟环境创建好了,接着使用如下命令来激活虚拟环境:

pipenv shell

当然,如果你不想激活虚拟环境,但是想直接使用虚拟环境的话,可以使用如下命令来运行:

pipenv run

看到这里,你可能会觉得,和上面的 venv 创建虚拟环境差不多啊?

图片

 

打开你的项目文件,你可以看到,在使用 pipenv 创建虚拟环境的时候,多出来了两个文件:

Pipfile

它们是干啥的呢?其实它们就是为了解决我们刚刚说的那些包依赖的问题。

之前,我们总是需要在 requirements.txt 文件中改来改去。而现在有了它们,我们可以让包管理变得很舒服。

也就是说,现在我们通过 pipenv 来操作第三方库。你是删除也好,更新也罢,它们都会帮你自动更新,你不用再去操心 requirements.txt 了。

比如,我们现在使用 pipenv 来安装「requests」和 「click」库:

pipenv install requests

这时候 pipenv 会自动将你使用的库更新到 「Pipfile」和 「Pipfile.lock」文件中。

pipfile:

图片

 

Pipfile.lock:

图片

 

pipfile 列出了我们所安装的库和 Python 版本等信息,Pipfile.lock 更为详细,其中还包含了库的哈希值,这样我们在生产环境中使用这些库的时候,可以保证安装到的库是一模一样的。

值得注意的是,这两文件不用我们手动操作,它们会自动随着你的 pipenv 操作而更新。

你可以使用 pipenv lock 命令来生成 Pipfile.lock,然后在生产环境中,你只需要 pipenv install,就可以安装项目所依赖的库了。

现在你可以直接使用 pipenv 来代替这些玩意了:pip、requirements.txt、virtualenv。

pipenv 常用的命令

pipenv 有一些很好用的包管理命令,接下来给你介绍几个常用到的命令:

检查库的安全性:

pipenv check

你刚看到的库的安装:

piping install

查看库的依赖关系:

pipenv graph

click==7.1.2

卸载库:

pipenv uninstall click

更新:

pipenv update

查看具体的库:

pipenv open requests

进入虚拟环境:

pipenv shell

退出虚拟环境:

exit

安装 Pipfile.lock 中的库:

pipenv sync

事实上,你可以直接输入 pipenv,可以看到命令和参数的使用解释:

图片

 

OK,以上就是今天给你带来的分享,希望对你有帮助。

【pip command】之 pip install 本文是对该参考手册的摘抄和再整理,也记录了自己使用该命令行的过程。 阅读详情

相关推荐

【一文理解】conda install & pip install 区别

大部分情况下,conda install & pip install 二者安装的package都可以正常work,但是混装多种package后容易版本冲突,出现各种报错。

Frost_Descent的博客 2656

pip 的高阶玩法

pip 的高阶玩法 原创student老胡机器学习算法与Python实战今天 ↑↑↑点击上方蓝字,回复资料,10个G的惊喜 pip 应该是大家最熟悉的 Python 包安装与管理工具了,但是除了pip install 这个最常用的命令,还有很多有用的玩法。这里就介绍几个我平时会用到的,希望对大家有所帮助。 pip freeze 这个命令可以查看已经安装的包及版本信息,当你要换电脑,或者朋友想复刻你已安装的包,又不想一个一个重新安装。这时就可以使用pip freeze > ...

STR_Liang的博客 482

用Python手把手教你实现一个多层感知机(MLP)——从理论到代码实战

本文详细介绍了如何使用Python和Theano库从零开始实现多层感知机(MLP),涵盖从核心原理到代码实战的全过程。通过构建隐藏层、输出层和完整MLP模型,结合权重初始化、激活函数选择和训练技巧,帮助开发者深入理解神经网络工作机制,并应用于实际机器学习任务。

web39explorer的博客 969

Python 库的三种安装方式

第一种:pip 安装 直接在命令行界面敲: # pip install 库名 如: pip install requests 或其他命令行安装方式也类似pip安装 第二种:wheel安装 wheel是Python的安装包,后辍是 .whl ,在网速比较慢的时候使用比较方便 先安装 wheel 库: pip install wheel 然后,去https://www.lfd.uci.edu/~gohlke/pythonlibs/找到对应的.whl文件下载 随后在命令行进入.whl文件当前目录,利用pi

T5858785的博客 1141

IGBT单管并联方案全解析:从均流设计到热管理实战技巧

本文深入解析了IGBT单管并联技术在新能源车电驱系统中的应用,重点探讨了均流设计与热管理实战技巧。通过优化寄生电感控制、动态均流和驱动电路设计,提升系统稳定性和效率,为工程师提供了一套完整的解决方案。

weixin_28720573的博客 435

【HCIE】FRR+BFD+OSPF与BGP联动

FRR+BFD+OSPF与BGP联动

Wenrs的博客 1995

除了pip手动安装相关的包文件

除了pip install之外,手动安装包的方式。 直接clone下载最新的github的repo !git clone https://gitee.com/AI-Mart/PaddleNLP !cd PaddleNLP !python setup.py install 这样即可安装

qq_15821487的博客 412

Python批量注册脚本开发详细

开发一个Python批量注册脚本需要考虑多个方面,包括目标网站的注册流程、验证码处理、请求发送、数据存储等。以下是一个详细的开发流程和代码示例,用于实现基本的批量注册功能。

nsp202505的博客 3343

pip安装模块的几种方式

文章目录安装模块方法方法1: 单文件模块方法2:多文件模块,带setup.py方法3:easy_install 方式方法4:pip 方式 安装模块方法 方法1: 单文件模块 直接把文件拷贝到$python_dir/Lib 方法2:多文件模块,带setup.py 下载模块包,进行解压,进入模块文件夹,执行: python setup.py install 方法3:easy_install 方式 先...

zlhcsm的博客 1320

电力系统设计实战:如何用ETAP绘制一次接线图并优化供电方案

本文详细介绍了如何使用ETAP软件进行电力系统一次接线图的绘制与供电方案优化。从基础环境配置到主接线拓扑构建,再到典型接线方式的对比分析与智能优化,为工业与民用电力系统设计提供实用指南。通过ETAP的可靠性分析和动态仿真功能,帮助工程师选择最优供电方案,提升系统可靠性和运维效率。

weixin_29250573的博客 203

错误代码:11300001 数据集 [xxx] 配置错误“=”附近有语法错误(原理分析)

错误代码:11300001 数据集 [1_Workshift] 配置错误“=”附近有语法错误。

码农研究僧的博客 913

pip install和conda install的区别

Python依赖(dependencies)指的是某个 Python 项目运行所需的外部库或模块。这些依赖通常由pip从或其他包管理器(如 Conda)下载和安装。方式用途安装单个依赖pip list查看当前环境的依赖导出依赖从安装依赖venvpipenv解决版本冲突,管理独立环境推荐:始终使用虚拟环境来管理 Python 依赖,避免版本冲突!方式优点适用场景venvPython 内置,简单高效绝大多数项目virtualenv支持 Python 2 和独立环境需要支持 Python 2 的情况。

博客简介 3111

Unity必学:Protobuf-net预编译实战

本文深入解析Unity项目使用Protobuf-net Precompile的必要性。作为高效跨平台序列化方案,Protobuf-net解决了Unity工程在网络同步、存档系统中的性能瓶颈,特别是针对iOS等AOT平台的兼容问题。通过预编译模式,将运行时反射转为静态代码生成,显著提升移动端性能表现,支持协议平滑升级,已成为大厂项目的标配方案。文章从原理、实践到多平台适配,全面展示了这一"序列化发动机"如何支撑现代Unity项目的数据传输需求。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 494

pip install pyinstaller安装报错

在学习python时,需要用到pyinstal库,将.py文件转化为.exe可执行文件。在windows下cmd命名行中,使用pip install pyinstaller安装,但是在安装时遇到报错: 然后在按照它给的命名:c:\users\28032\appdata\local\programs\python\python38\python.exe -m pip install --upgrade pip输入,同样报相同的错。然后重新查看信息,发现前面还有一个warming: 首先解决第一个警告,连接

qq_43441764的博客 8329

Linux Kernel入门到精通系列讲解(RV-Kernel 篇) 5.6 在kernel 中实现系统复位和系统关机驱动

上一章节`Qemu`篇我们已经实现了我们`SOC`的`power reset`和 `power down` 寄存器,本章节我们就在`Linux driver`中去实现它

DSMGUOGUO的博客 540

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

conda install 和 pip install 的区别

和各有优缺点,适用于不同的场景。conda更适合数据科学和机器学习项目,以及需要进行环境管理的情况;而pip则更适合纯Python项目和轻量级项目。

m0_53665440的博客 2960

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

pip install 命令详解

pip是 Python 的标准包管理器,允许用户从 Python 包索引(PyPI)或其他来源安装、卸载和管理 Python 包。它是 Python 开发者管理项目依赖的核心工具,尤其在处理复杂依赖关系时非常有用。

likuoelie的博客 4101

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

PIP install 命令详解

--prefix` 是 `pip install` 命令的一个选项,用于指定安装的前缀(prefix)目录,该目录包含顶级文件夹,如 `lib`、`bin` 等。通常,在使用这个选项时,还需要指定 `--implementation`、`--platform` 和 `--python-version`。这个文件中的内容表示安装 `requests` 包的确切版本为 `2.26.0`,而安装 `numpy` 包的版本必须在 `1.21.0` 和 `1.22.0` 之间(不包括 `1.22.0`)。

weixin_45137871的博客 1万+

pip install 指令报错

pip版本过低,pip版本过高,网络问题;依赖冲突;网络问题、依赖冲突、权限问题、环境变量设置不正确;系统兼容性问题;安装源问题;缓存问题;Python 解释器问题;库本身的问题

2401_86985901的博客 3791

pip install requests遇到的一些问题。

起初python环境是2016年安装的2.6版本。 问题1、执行命令时,提示pip不是内部命令。 已解决:查阅优快云,找到原因是自己没有把pip所在路径加入到环境变量,所有无法直接执行pip程序。 问题2、执行pip install requests 超时,cmd窗口没有任何提示,windows会自动弹出python执行超时的窗口告警,然后pip install requests 自动停止执行。...

weixin_36561155的博客 1万+

pip install . 和 pip install -e . 的区别

把python项目可安装化以后,执行pip install .或者pip install -e .安装。 二者区别如下: pip install . :安装后的模块freeze在pip/conda依赖下,换句话说,再修改本地的原项目文件,不会导致对应模块发生变化。 pip install -e .:-e 理解为 editable,修改本地文件,调用的模块以最新文件为准。 ...

skysys的研究小屋 2万+

python -m pip install xxx和pip install xxx的区别

Python虚拟环境中使用python -m pip install与直接pip install有本质区别:前者显式调用当前解释器的pip模块,确保版本匹配和安装路径正确;后者依赖系统PATH可能指向错误版本。关键差异体现在多版本共存、pip自身升级、虚拟环境隔离和Windows系统兼容性场景。验证版本一致性后,推荐在复杂环境中使用python -m pip,尤其升级pip等核心工具时,可避免"装了用不了"的问题。对于升级操作,应执行python -m pip install --upg

WSSWWWSSW的博客 1105

pip install

pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。 目前如果你在python.org下载最新版本的安装包,则是已经自带了该工具。 Python 2.7.9 + 或 Python 3.4+ 以上版本都自带 pip 工具。 pip 官网:https://pypi.org/project/pip/ 你可以通过以下命令来判断是否已安装: p...

I want to know a little more. 5190

【pip】pip常用命令及pip install部分含义

本文介绍pip常用命令及pip install的部分选项含义参考

m0_51371693的博客 2278

conda install与pip install区别

有时候使用pip进行安装文件包之后,但是使用conda list命令不显示下载的文件包,因此为了了解pip与conda安装库的区别,总结了以下内容。提示:以下是本篇文章正文内容,下面案例可供参考提示:这里对文章进行总结:例如:以上就是今天要讲的内容,本文仅仅简单介绍了conda linstall 和 pip install的区别。

qq_45754436的博客 1387
上一篇: 为什么不要轻易使用 Chrome 复制的 XPath?
下一篇: Python提取 “Excel文本框” 内容,这个需求头一次见,1000个表,10行代码!
加班不秃顶
博客等级 码龄7年 1822粉丝 599原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值