当前位置: 首页 > 编程笔记 >

怎么使用pipenv管理你的python项目

韦衡
2023-03-14
本文向大家介绍怎么使用pipenv管理你的python项目,包括了怎么使用pipenv管理你的python项目的使用技巧和注意事项,需要的朋友参考一下

在thoughtbot,我们用Ruby和Rails工作,但通常我们总是尝试使用最合适的语言或者框架来解决问题。我最近一直在探索机器学习技术,所以Python使用地更多。

Ruby项目和Python项目处理之间的一个很大的区别就是管理依赖关系方式的不同。目前在Python语言中没有类似于Bundler或Gemfiles的东西,所以通常Python开发人员将使用Virtualenv创建一个虚拟环境,再创建一个依赖包列表requirements.txt,然后他们可以使用 Pip进行安装。

这种方法一般都会工作正常,但有时它会表现出一些怪异行为,因此你必须手动安装或删除某些特定版本的包,并记得定期更新requirements.txt文件,以保持项目环境的一致。特别是当你想要在你的虚拟环境中安装Python包,但它不一定与项目本身相关联。 此外,一些项目有时会保留requirements.txt文件的两个版本——一个用于开发环境,一个用于生产环境,这可能会导致更多的复杂性。

幸运的是,Kenneth Reitz的最新工具Pipenv可以用于简化Python项目中依赖项的管理。 它汇集了Pip,Pipfile和Virtualenv的功能,是一个强大的命令行工具。

入门

首先使用pip安装Pipenv及其依赖项,

pip install pipenv

然后将目录更改为包含你的Python项目的文件夹,并启动Pipenv,

cd my_project
pipenv install

这将在项目目录中创建两个新文件Pipfile和Pipfile.lock,如果项目不存在,则为项目创建一个新的虚拟环境。 如果你添加–two或–three标志到上面的最后一个命令,它分别使用Python 2或3来初始化你的项目。 否则将使用默认版本的Python。

管理Python依赖关系

Pipfile包含关于项目的依赖包的信息,并取代通常在Python项目中使用的requirements.txt文件。 如果你在具有requirements.txt文件的项目中启动了Pipenv,则在把它从项目中删除之前,应该使用Pipenv安装该文件中列出的所有依赖包。

要为你的项目安装Python包,请使用install关键字。 例如,

pipenv install beautifulsoup4

将安装当前版本的Beautiful Soup包。 可以使用uninstall关键字以类似的方式删除包,

pipenv uninstall beautifulsoup4

可以通过更新Pipfile.lock来冻结软件包名称及其版本,以及其依赖关系的列表。 这可以使用lock关键字完成的,

pipenv lock

如果另一个用户克隆存储库,可以添加Pipfiles到你的Git存储库,这样他们只需要在他们的系统中安装Pipenv,然后键入,

pipenv install

Pipenv会自动找到Pipfiles,创建一个新的虚拟环境并安装必要的软件包。

管理你的开发环境

通常有一些Python包只在你的开发环境中需要,而不是在你的生产环境中,例如单元测试包。 Pipenv将使用–dev标志保持两个环境分开。

pipenv install --dev nose2

nose2,但也将其关联为只在开发环境中需要的软件包。 这很有用,因为现在,如果你要在你的生产环境中安装你的项目,

pipenv install

默认情况下不会安装nose2包。 但是,如果另一个开发人员将你的项目克隆到自己的开发环境中,他们可以使用–dev标志,

pipenv install –dev

并安装所有依赖项,包括开发包。

运行你的代码

为了激活与你的Python项目相关联的虚拟环境,你可以使用简单地shell命令,比如

pipenv run which python

将在你的虚拟环境中运行which python命令,并显示与你的虚拟环境相关联的python可执行文件所在的路径。 这是在虚拟环境中运行你自己的Python代码的一个简单方法,

pipenv run python my_project.py

如果你不想每次运行Python时都输入这么多,你可以在shell中设置一个别名,例如,

alias prp="pipenv run python"

保持简单

我希望这篇文章已经告诉你如何管理你的Python项目与Pipenv。 它出现不到一个月,所以我很有兴趣,看看它随着时间的推移如何发展。我当然不希望它变得完全像Ruby的Bundler,但我肯定会支持它,以简化Python项目中依赖的管理。 我希望你也这样!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程

 类似资料:
  • 本文向大家介绍使用vue开发过程你是怎么做接口管理的?相关面试题,主要包含被问及使用vue开发过程你是怎么做接口管理的?时的应答技巧和注意事项,需要的朋友参考一下 创建一个用于封装axios,在 ,设置拦截器统一处理请求和相应。 封装 axios:: 接口 : 在 Vue 组件中使用:

  • 本文向大家介绍python怎么进行内存管理的?相关面试题,主要包含被问及python怎么进行内存管理的?时的应答技巧和注意事项,需要的朋友参考一下 对象引用计数机制 一个对象会分配一个名称,使用del语句可以对对象别名进行销毁删除 垃圾回收机制 当对象的引用计数归零时会被本机制处理掉 内存池机制 然而每个对象都包含对另外一个对象的引用,因此引用计数归零也不会被销毁,因此会执行解释器定期执行周期检测

  • 可以将订阅号或轻应用消息可以提前编辑好后放在“素材管理”中,可以对消息进行编辑、删除等操作。

  • 问题内容: 我正在尝试做一些代码挑战赛,但是所有这些挑战都需要从输入stdin。我如何在Python中得到它? 问题答案: 请注意,这将在末尾包含换行符。要最后删除换行符,请使用所说的。

  • 本文向大家介绍在react中你是怎么进行状态管理的?相关面试题,主要包含被问及在react中你是怎么进行状态管理的?时的应答技巧和注意事项,需要的朋友参考一下 使用react-redux进行状态管理 使用redux-thunk中间件进行异步数据的处理

  • 操作步骤: ①在"图层管理"模块,选择一个带有数据的图层,点击"数据视图",即可打开数据表格视图。 1)添加删除列。点击目标列字段的小箭头,在菜单中选择相应操作,可完成「在前追加列」、「在后追加列」、「字段编辑」、「删除列」的操作。 2)修改属性值。在单元格中双击,输入新值即可。 3)隐藏或是显示记录。点击「操作」列中的眼睛,可控制记录在地图上的隐藏或是显示。 4)查到符合条件的记录。点击数据视图