怎么使用pipenv管理你的python项目
原文链接:https://robots.thoughtbot.com/how-to-manage-your-python-projects-with-pipenv
翻译者:Jiong
在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,
- 1 cd my_project
- 2 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"
注明:这是转载的博文,只作为自己收藏,方便查阅使用。
怎么使用pipenv管理你的python项目的更多相关文章
- 使用pipenv管理你的python项目
		怎么使用pipenv管理你的python项目 原文链接:https://robots.thoughtbot.com/how-to-manage-your-python-projects-with- ... 
- 使用pipenv管理python项目
		入门 首先使用pip安装Pipenv及其依赖项, pip install pipenv 1 然后将目录更改为包含你的Python项目的文件夹,并启动Pipenv, cd my_project pipe ... 
- Pipenv——最好用的python虚拟环境和包管理工具
		pipenv 是Kenneth Reitz大神的作品,能够有效管理Python多个环境,各种包.过去我们一般用virtualenv搭建虚拟环境,管理python版本,但是跨平台的使用不太一致,且有时候 ... 
- 01-使用pipenv管理项目环境
		一.使用pipenv管理项目环境 首先为什么我们不在真实环境下做开发呢?真实环境的一些包被其他服务所依赖,我们安装的包和模块都混杂在一起,这样不便于项目管理,还有可能出现意想不到的错误,于是就出现了包 ... 
- pipenv管理python开发环境
		简介 简单说,pipenv就是把pip和virtualenv包装起来的一个便携工具. 它不会在你的项目文件夹里生成一大堆东西,只有两个文本文件: Pipfile, 简明地显示项目环境和依赖包. Pip ... 
- 使用pipenv管理python虚拟环境
		前言 近期的项目中,我开始尝试着从virtualenv管理python虚拟环境,切换到用pipenv来管理. 经过一段时间的使用,着实觉得pipenv使用的更加顺手,更加的便捷.这当然也延续了 Ken ... 
- python项目实现配置统一管理的方法
		一个比较大的项目总是会涉及到很多的参数,最好的方法就是在一个地方统一管理这些参数.最近看了不少的python项目,总结了两种很有意思的配置管理方法. 第一种 基于easydict实现的配置管理 首先需 ... 
- 使用pipenv管理虚拟环境
		使用pipenv管理虚拟环境 安装 pip install pipenv 命令介绍 pipenv --help Usage: pipenv [OPTIONS] COMMAND [ARGS]... Op ... 
- 从pip+requirements.txt+virtualenv管理依赖到使用pipenv管理依赖-修改布署方式
		背景: 已经使用pip+requirements.txt+virtualenv管理了项目一段时间,为了不要每次都 导出依赖(本地),安装依赖(服务器) 现在要使用pipenv来管理项目的依赖关系 思路 ... 
随机推荐
- javap(反汇编命令)
			用法: javap <options> <classes> 其中, 可能的选项包括: -help --help -? 输出此用法消息 -version ... 
- IntelliJ Idea 常用快捷键列表和快速输入
			IntelliJ Idea 常用快捷键列表和快速输入 快速输入查看 最常用快捷键 Alt+Enter 万能快捷键,用于引入错误包 Ctrl+ Mouse left 快速调转定义 快捷键 Ctrl+Sh ... 
- UGUI防止点击穿透
			if (!IsPointerOverGameObject(Input.mousePosition)) { } public static bool IsPointerOverGameObject(Ve ... 
- Question  20171117    Java中的编码问题?
			撰文缘由 前几天做一个邮件发送功能,一些常用信息配置在properties文件中,通过prop.getProperty(key)来获取配置的信息,结果配置文件中是用中文写的,邮件发送成功后,邮箱中的激 ... 
- Java实现非递归归并排序
			public class nonRecursiveMergeSort { public static void main(String[] args) { int[] list = {8,4,3,6, ... 
- iptables防火墙常用命令参数
			iptable添加一条规则开放22端口 iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A OUTPUT -p tcp --sport ... 
- xcode 快捷键大全、XCode常用快捷键图文介绍
			其实就是设置里面的快捷键变成了文字版,刚开始用Xcode是不是发现以前熟悉的开发环境的快捷键都不能用了?怎么快捷运行,停止,编辑等等.都不一样了.快速的掌握这些快捷键,能提供开发的效率. 其实快捷键在 ... 
- DB2 SQL Error: SQLCODE = -798, SQLSTATE = 428C9
			DB2 SQL Error: SQLCODE = -798, SQLSTATE = 428C9报错是因为 , 你往设置了ALWAYS自增的列里面插了初始值 . ALWAYS自增设置如下. -- 设置主 ... 
- Co. - Microsoft - Windows - Tomcat、JDK、MySQL通过 Inno 集成为exe部署包
			需求 客户设备为Windows系统,需要部署公司产品,因此将Tomcat.JDK.MySQL.Java.war 打包整合成exe文件,Windows下一键部署安装. 最佳实践 1.下载免安装的mysq ... 
- jquery图片滚动jquery.scrlooAnimation.js
			;(function ($, window, document, undefined) { var pluginName = "scrollAnimations", /** * T ... 
