pip - 通过 sh 脚本自动创建 pyenv
问题描述
我正在运行一个项目,该项目使用 pip 和 requirements.txt 文件来安装和跟踪一些依赖项。我想编写一些 sh 脚本来运行、构建和测试应用程序。对于初学者,我想要一种方法来检查当前文件夹是否在 pyenv 中,如果不是,则创建一个来包含应用程序,而不是弄乱其他人的依赖项。另外,如果 requirements.txt 是一种好方法,并且如果有一种方法可以像使用节点包一样跟踪已安装的版本,我想就跟踪这种依赖关系的最佳方法提出意见。
解决方案
使用Pipenv。这是跟踪依赖关系的更好方法,requirements.txt
它使用 Pyenv 自动安装项目所需的 Python 版本。
从网站:
Pipenv 试图解决的问题是多方面的:
- 您不再需要单独使用
pip
和virtualenv
。他们一起工作。- 管理
requirements.txt
文件可能会出现问题,因此 Pipenv 使用Pipfile
和Pipfile.lock
将抽象依赖声明与最后测试的组合分开。- 哈希值无处不在,总是如此。安全。自动暴露安全漏洞。
- 强烈鼓励使用最新版本的依赖项,以最大程度地减少因组件过时带来的安全风险。
- 让您深入了解您的依赖关系图(例如
$ pipenv graph
)。.env
通过加载文件简化开发工作流程。[...]
Pipenv 功能
- 启用真正确定性的构建,同时轻松地仅指定您想要的内容。
- 生成并检查文件哈希以查找锁定的依赖项。
pyenv
如果可用,自动安装所需的 Python 。- 通过查找
Pipfile
.Pipfile
如果不存在,则自动生成一个。- 在标准位置自动创建一个
virtualenv
。Pipfile
在安装或卸载包时自动将包添加/删除。- 自动加载
.env
文件(如果存在)。
推荐阅读
- python - 在装饰器中引用自我
- ios - 减少 React Native iOS 应用程序中的内存使用
- javascript - Leaflet.js:更改标记图标有效,但只有一次
- jackson - 如何使用杰克逊正确序列化 ZonedDateTime 的时区部分 - 正确处理偏移量
- primary-key - 从头开始建立公司数据库
- merge - MarkLogic:向现有数据库添加新林时如何加快重新平衡过程?
- python - How to Assign the Kivy Input Text to a variable immediately on pressing Enter?
- html - 使用 CSS 变量进行主题化
- angular - 使用 1 个按钮将 2 个输入添加到我的后端
- javascript - 让 Discord Bot 加入/离开频道