在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及其依赖项,

--------------------------------------------------------------------
注:如果你对python感兴趣,我这有个学习Python基地,里面有很多学习资料,感兴趣的+Q群:895817687
--------------------------------------------------------------------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项目中依赖的管理。我希望你也这样!

Python 官方推荐的一款打包工具相关推荐

  1. 关于python的一些好的书籍推荐-python官方推荐30本面向初学者的书籍!你看过几本?...

    现在大多数初学者学习python都是看教学视频,但是小编想说的是,如果你能把一本书籍认认真真的读完,那么比你看教学视频的效果要好的多!今天小编就来带大家看看python官方推荐的30本面向初学者的书籍 ...

  2. 学python买什么书好-python官方推荐30本面向初学者的书籍!你看过几本?

    现在大多数初学者学习python都是看教学视频,但是小编想说的是,如果你能把一本书籍认认真真的读完,那么比你看教学视频的效果要好的多!今天小编就来带大家看看python官方推荐的30本面向初学者的书籍 ...

  3. 自学python买什么书比较好-python官方推荐30本面向初学者的书籍!你看过几本?...

    现在大多数初学者学习python都是看教学视频,但是小编想说的是,如果你能把一本书籍认认真真的读完,那么比你看教学视频的效果要好的多!今天小编就来带大家看看python官方推荐的30本面向初学者的书籍 ...

  4. python官方推荐的三本书-一个合格的python程序员,应该从这三本书入手

    pytho官方推荐的三本入门书籍 python是一门新起的老的编程语言,为什么这么说呢?因为在很早就出现了,最初被用于编写自动化脚本,随着版本不断更新,越来越用于独立的大型项目,在17年广泛进入入门的 ...

  5. 这些是 Python 官方推荐的最好书籍(推荐)

    简评:Python 官方有一个推荐书单「PythonBooks.org 」,这里面涵盖了从初学到入门再到精通(并没有到放弃)的各个阶段,最好的学习书籍.小编整理了列表方便查找对应的中文版. Pytho ...

  6. 项目管理软件用哪个好?推荐这6款项目管理工具

    项目管理软件用哪个好?推荐这6款项目管理工具 项目管理软件是为了项目管理而开发出来的一种系统软件,更是最有价值的工具之一,通常被用于项目计划.时间管理.资源分配和变更管理,帮助公司提升竞争力,使之从行 ...

  7. 如何恢复错删了本机计算机器,如何彻底删除粉碎电脑文件?如何恢复电脑丢失文件?推荐这几款数据管理工具!...

    原标题:如何彻底删除粉碎电脑文件?如何恢复电脑丢失文件?推荐这几款数据管理工具! 日常生活中,我们常常会使用各种不同类型的文件粉碎工具来消除某些隐私数据,以期保护自身信息安全.由于粉碎机可以某些选定的 ...

  8. python推荐入门书籍-这些都是Python官方推荐的最好的书籍(推荐)

    转行学Python有前途吗?这个答案是肯定的,AI课程都已经进入小学教材了,未来Python趋势无疑是光明的,但是如何学习Python,很多Python小白都来问小编有什么适合的Python入门书籍推 ...

  9. python官方推荐的三本书-【数据分析】入门数据分析,你一定要看的三本书

    原标题:[数据分析]入门数据分析,你一定要看的三本书 最近经常被问到怎么入门数据分析,可能很多同学对怎么开始学习还是比较困惑的.我回想自己学习数据分析的经历,总结了一些建议,希望能给到大家帮助. 打好 ...

最新文章

  1. Javascript 面向对象编程中的‘new’
  2. Redis和Memcache对比及选择
  3. Java面试常考的面试题整理
  4. TIOBE 11 月榜单:Python 挤掉 Java,Java的下跌趋势确立了?
  5. PHP 设计模式 笔记与总结(3)SPL 标准库
  6. dreamweaver开源_Dreamweaver的7种开源替代品
  7. python for everybody作业和测试答案_Python第九,十章练习题 (第五周作业)
  8. 第一章 ---- Spring IOC
  9. redis怎么开启_关于Redis数据库入门必备的学习点
  10. linq4j java8_Linq4j简明介绍
  11. android 巧用资源文件(不断积累)
  12. 正则表达式视频教程免费下载
  13. 行政人员为什么需要一套固定资产管理系统?
  14. 洛谷 P3382(三分查找凹点和凸点)
  15. Windows编程 Windows程序的生与死(上)
  16. 分享前端网站模板,HTML5的响应式设计模板
  17. 如何给图片加水印?这三个图片加水印方法,帮你添加花式水印
  18. 几何分布的期望公式的推导
  19. 消防中计算机基础知识,消防基础知识考试题
  20. 少儿学计算机编程的十大好处,孩子学少儿编程的十大好处

热门文章

  1. python decorator. decorator_Python装饰器(decorator)
  2. logback1.1.11日志无法自动删除
  3. Cython——Windows环境下配置faster-rcnn、yolo、ctpn等目标检测框架中Cython文件[cython_nms、bbox、gpu_nms]编译问题解决方案
  4. Spring Security——org.springframework.security.oauth:spring-security-oauth2项目已过时解决方案
  5. MAC + Tomcat——部署Web项目时Tomcat启动成功,但部署的Web项目404错误
  6. II play with GG
  7. 操作系统 第五章【虚拟存储器】【MOOC答案】
  8. JavaWeb-综合案例(用户信息)-学习笔记01【列表查询】
  9. 观察者模式——解耦利器
  10. laravel 框架基础 学习整理