-
安装
pip install pipenv
-
使用和配置
-
设置虚拟环境文件创建在项目根目录
添加环境变量:
WORKON_HOME
=PIPENV_VENV_IN_PROJECT
-
创建虚拟环境时,自动换用指定的pip源
-
添加环境变量:
PIPENV_TEST_INDEX
=https://pypi.tuna.tsinghua.edu.cn/simple
-
-
Mac上
bashexport WORKON_HOME=PIPENV_VENV_IN_PROJECT export PIPENV_TEST_INDEX=https://pypi.tuna.tsinghua.edu.cn/simple
-
基本使用
-
首次创建虚拟环境,并指定python版本
bashpipenv --python 3.18
-
删除虚拟环境,在项目根目录下
bashpipenv --rm
-
激活虚拟环境
sqlpipenv shell
若在powershell中
sqlpipenv powershell
-
退出虚拟环境
-
直接在虚拟环境命令行输入
sqldeactivate
-
-
安装依赖
sqlpipenv install -r requirements.txt
-
-
进阶操作
-
根据已有的pipenv虚拟环境文件,重建虚拟环境
cd到
Pipfile.lock
所在目录sqlpipenv sync
-
另一个相似命令参数:
--deploy
sqlpipenv install --deploy
这个命令同样会安装或更新依赖,使其与
Pipfile.lock
匹配,但它具有额外的校验逻辑- 发现当前环境中存在
Pipfile.lock
未记录的包,或者已安装包的版本与锁定文件不匹配,该命令会报错并阻止安装,而不是尝试去修复或更新这些差异 - 要用于部署阶段,作为一个安全网来防止未经预期的依赖变化影响到生产环境。它确保部署过程不会因为依赖不匹配而引入潜在的错误
- 发现当前环境中存在
-
安装特定版本包到虚拟环境
sqlpipenv install numpy==1.18.5
-
对于只在开发过程中才需要的包的安装(如:测试框架、文档生成工具等),使用
--dev
参数sqlpipenv install --dev pytest
-
查看当前环境中已经安装的包和版本
sqlpipenv lock -r
-
-
Pipfile 和 pipefile.lock
-
Pipefile
- 作用 :
Pipfile
是pipenv
用来存储项目直接依赖和开发依赖的文件,它替代了传统的requirements.txt
文件。 - 内容 : 包含了项目所需的Python包及其版本范围(允许的版本号范围),还可以指定环境变量、索引URL等元数据。通过
pipenv install <package>
命令添加依赖时,pipenv
会自动维护这个文件,记录下包名和其兼容的版本范围。 - 优点: 相比于固定版本号,版本范围能更好地处理包之间的兼容性问题,同时也便于升级和维护。
- 作用 :
-
Pipfile.lock
- 作用 :
Pipfile.lock
则是一个更详细的依赖描述文件,它锁定了每个依赖的具体版本号,包括直接依赖和这些依赖的间接依赖(也就是所有的子依赖)。 - 生成与更新 : 通过运行
pipenv lock
命令生成或更新,这个命令会根据Pipfile
中的依赖关系和版本约束,确定一个确切的依赖版本集合,并记录在Pipfile.lock
中。 - 目的: 确保项目在不同环境下的依赖安装结果一致,这对于团队开发、持续集成(CI)和持续部署(CD)尤其重要,因为这可以避免"在我机器上能跑"的问题,保证所有环境下的依赖都是相同的。
- 优点: 提供了一种可复现的依赖管理方式,确保了项目的可移植性和稳定性。
- 作用 :
-
总结:
Pipfile
更偏向于开发时的灵活管理,而Pipfile.lock
则是在部署和团队协作时保证环境一致性的重要工具。- 在开发过程中频繁变动的是
Pipfile
,而Pipfile.lock
应该在每次准备部署或分享代码之前更新,以确保依赖的精确复现
-
-
Tips
- 在激活的pipenv内使用
pip install
安装的包不会记录到pipenv的相关文件中,也就对该包失去管理 - 所以,强烈推荐在使用pipenv相关的虚拟环境时,包的安装和卸载都是用
pipenv install/uninstall package_name
替代pip install/uninstall package_name
。
- 在激活的pipenv内使用
【pipenv】—— 虚拟环境管理工具近乎全面的总结
MaiXiaochai2024-09-14 5:06
相关推荐
好看资源平台1 小时前
网络爬虫——综合实战项目:多平台房源信息采集与分析系统进击的六角龙1 小时前
深入浅出:使用Python调用API实现智能天气预报檀越剑指大厂1 小时前
【Python系列】浅析 Python 中的字典更新与应用场景湫ccc1 小时前
Python简介以及解释器安装(保姆级教学)孤独且没人爱的纸鹤1 小时前
【深度学习】:从人工神经网络的基础原理到循环神经网络的先进技术,跨越智能算法的关键发展阶段及其未来趋势,探索技术进步与应用挑战羊小猪~~2 小时前
tensorflow案例7--数据增强与测试集, 训练集, 验证集的构建lzhlizihang2 小时前
python如何使用spark操作hiveq0_0p2 小时前
牛客小白月赛105 (Python题解) A~E极客代码2 小时前
【Python TensorFlow】进阶指南(续篇三)庞传奇2 小时前
TensorFlow 的基本概念和使用场景