python 03-标准库 第三方库-pip pipenv工具
一、标准库 第三方库
-
python标准库:Python自带的一组模块和库,这些模块和库提供了Python编程所需的基础功能和工具
https://docs.python.org/zh-cn/3/library/index.html?eqid=8ca0b3ea000067990000000264800802 -
Python包索引:即PyPI(Python Package Index),是一个仓库,存放了许多可以通过pip安装的独立于标准库之外的第三方的Python库,PyPI是一个官方的包索引 https://pypi.org/ 但是也可以有自定义的包索引。
二、pip工具
(1)pip介绍
-
使用Python包索引,可以用pip工具,它是Python的一个包管理器,可以用来安装、升级和卸载Python包。使用pip时,你可以指定包的来源,默认是PyPI,但你也可以指定其他包索引。
-
pip工具还有工程打包,依赖搜索等高级功能
-
从Python 3.4版本开始,pip已经内置在Python中,所以一般情况下不需要再次安装(我的是python3.12.5)
(2)pip指令(windows版本)
查看pip版本(注意pip和python版本更新是独立进行的,因此pip提示更新时,需要单独更新 pip install --upgrade pip)
安装 Packages:
pip install package_name
安装earlier version(当遇到兼容性问题时需要安装旧一点的包才可以运行)
pip install package_name==2.32.2
pip install package_name==2.32.* 意思是会下载2.32的最新兼容版本
更新 Packages:
pip install --upgrade package_name
卸载 Packages:
pip uninstall package_name
列出已安装的 Packages:
pip list
展示 Package Information:
pip show package_name
查找 Packages: 搜索查找PyPI包名称或摘要包含
pip search search_term
Freeze Installed Packages (to a requirements file):自动生成一个依赖文件或称为要求文件(requirements文件)
pip freeze > requirements.txt
Install from a Requirements File:安装requirements.txt依赖
pip install -r requirements.txt
使用python -m venv xxx
命令可以创建一个虚拟环境名字为xxx。这个命令是Python 3.3及以后版本引入的,用于创建一个轻量级的、独立的Python环境。虚拟环境对于项目依赖管理非常有用,因为它允许你为不同的项目安装不同版本的包,而不会导致版本冲突。可以为每个项目维护一个独立的依赖集,这有助于避免不同项目之间的依赖冲突。创建并进入虚拟环境的步骤如下:
-
1.打开命令提示符(CMD)或PowerShell。
-
2.导航到你想创建虚拟环境的目录。使用cd命令可以改变当前目录。或者在目标目录中打开cmd:
-
3.运行
python -m venv env
命令。这会创建一个名为env的虚拟环境目录。
-
4.激活虚拟环境。在Windows上,运行
env\Scripts\activate
来激活虚拟环境。激活后,命令提示符会显示虚拟环境的名称。
-
5.现在,可以在虚拟环境中安装和管理Python包了。使用pip install 包名来安装包。
-
6.当你完成工作并想退出虚拟环境时,只需运行
deactivate
命令。
三、pipenv工具
(1)pip与pipenv区别
- pip
用途:一个包管理器,用于从Python包索引(PyPI)安装和管理Python包。
用法:主要用于安装软件包及其依赖项。
要求:通常手动管理依赖关系,通常使用Requirements.txt文件。
环境管理:需要手动创建孤立的虚拟环境;可以将它与venv或virtualenv创建的虚拟环境一起使用。
- pipenv
目的:一个结合包管理和虚拟环境管理的高级工具。
用法:自动为项目创建和管理虚拟环境,并从Pipfile中添加/删除包。
要求:使用Pipfile指定依赖关系,使用Pipfile.lock进行确定性构建。
环境管理:自动处理隔离环境的创建,使管理项目依赖关系变得更加容易。
(2)pipenv命令
-
ipenv的虚拟环境不激活也能用,但通常建议激活后使用。pipenv会在项目根目录下创建Pipfile和Pipfile.lock文件,用于记录和管理依赖关系。只要有这些文件,就可以通过pipenv run命令来执行Python脚本,而无需激活虚拟环境。然而,激活虚拟环境可以确保使用正确的Python解释器和相关依赖项,避免版本冲突和依赖性问题。因此,建议激活虚拟环境后再进行工作。
-
在Windows系统下,未激活pipenv的虚拟环境时,无法直接在虚拟环境中安装包或卸载包(但是运行文件可以语句为:pipenv run python your_script.py,不过不建议这样做!)。需要先激活虚拟环境,才能执行相关操作。激活虚拟环境的命令是pipenv shell,激活后,就可以使用pipenv install [包名]来安装包,使用pipenv uninstall [包名]来卸载包。如果未激活虚拟环境,直接执行这些命令,将会影响全局Python环境,而不是虚拟环境。因此,确保在操作前已经激活了对应的虚拟环境是非常重要的
安装pipenv
pip install pipenv
激活虚拟环境 ,激活之后就可以直接运行文件了eg: python app.py (注意:这里与全局环境语句相同)
pipenv shell
安装package
pipenv install <package_name>
查看虚拟环境的包列表:
pipenv graph
返回虚拟地址:
pipenv --venv
安装所有依赖 install all dependencies from the Pipfile:
pipenv install
在你想要安装新的依赖,但不想将这些依赖添加到Pipfile中,也不会生成 Pipfile.lock 文件,使用这个命令:
pipenv install --ignore-pipfile
这通常在你确信不需要跟踪某些依赖,或者在进行一些临时的测试时比较有用。
这在某些特定场景下可能是有用的,但通常不推荐在生产环境中使用,因为它可能会导致依赖管理的不一致
卸载package:
pipenv uninstall <package_name>
退出虚拟环境:
exit
eg:
在vscode中进入虚拟环境:
-
使用pipenv --venv返回得到了虚拟环境的路径:C:\Users\zdn.virtualenvs\HelloWorld-hwMYnZoU
-
打开这个路径发现虚拟环境的python解释器python.exe在scripts目录下:
路径:C:\Users\zdn.virtualenvs\HelloWorld-hwMYnZoU\Scripts
-
vscode中:ctrl+shift+p 搜索 open settings.json
-
编写"code-runner.executorMap"回车后会自动补全代码,找到python
-
前面加上虚拟环境下python.exe的路径:注意windows系统中,路径是双斜杠,记得保存。
-
点击右下角的python版本号,可以看见全局的和虚拟的python版本:
(3)Pipfile
四、pyenv 和 venv和conda区别
pyenv、venv 和 conda 是用于管理 Python 环境和依赖的不同工具
1. 功能和目的
pyenv:
用于管理多个 Python 版本,允许用户在同一台机器上安装和切换不同版本的 Python(包括 CPython、PyPy、Anaconda 等)。
可以与其他虚拟环境工具(如 virtualenv 或 venv)结合使用。
适合需要在不同项目之间切换 Python 版本的开发者。
venv:
是 Python 标准库的一部分,用于创建独立的虚拟环境,以隔离项目的依赖。
每个虚拟环境都是独立的,防止了不同项目之间的包冲突。
适合在特定的 Python 版本下进行项目开发,但不涉及多版本管理。
conda:
一个通用的包管理器和环境管理器,不仅支持 Python,还有其他编程语言(如 R、Ruby 等)。
可以创建虚拟环境并同时管理 Python 版本和其他软件包的依赖,以及它们的二进制文件。
更加适合数据科学和机器学习领域,因为它能够轻松处理复杂的依赖关系和库(如 NumPy、Pandas 等)。
2. 使用场景
pyenv:
当你需要同时使用多个 Python 版本时,pyenv 是理想选择。比如在一个项目中使用 Python 3.7,而在另一个项目中使用 Python 3.8。
适合需要测试兼容性或在不同环境下开发的情况。
venv:
当你为某个具体的项目创建隔离的环境时,使用 venv 是最佳选择。可以确保项目依赖不会与系统的 Python 环境或其他项目冲突。
适合开发和部署工作,而不涉及多版本管理。
conda:
当你需要管理复杂的包依赖或者使用非 Python 的包时,conda 是更好的选择。例如,如果你的项目需要使用 SciPy 或 TensorFlow 等库,它们可能有特定的版本要求。
特别适合数据科学、机器学习和科学计算领域的开发。
3. 安装和配置
pyenv:
需要用户手动安装和配置,包括必要的依赖项及更新 shell 配置文件,使其可用。
可以通过命令如 pyenv install
venv:
可以直接通过 Python 的标准库使用,如运行 python -m venv <env_name> 创建新的虚拟环境。
不需要额外的安装步骤,仅需确保你的系统已安装 Python。
conda:
需要单独安装 Anaconda 或 Miniconda。
提供了简单的命令行界面可以快速创建和管理环境,例如 conda create -n myenv python=3.7。
4. 性能和包管理
pyenv:
只关注 Python 版本的管理,包管理通常依赖 pip。
venv:
使用 pip 来管理包,速度快且简单,但在处理复杂依赖时可能会有限制。
conda:
擅长处理复杂的依赖关系,通常比 pip 更加稳定和可靠,尤其是在安装一些有 C/C++ 扩展的库时。
如果你的开发需求涉及多版本管理、依赖管理和跨语言库,可以将这些工具结合使用。例如,你可以使用 pyenv 来安装和管理 Python 版本,同时使用 conda 来管理环境和包。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)