怎么使用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"

注明:这是转载的博文,只作为自己收藏,方便查阅使用。

原文地址:https://www.cnblogs.com/victorm/p/9085160.html

时间: 2024-10-09 21:51:30

怎么使用pipenv管理你的python项目的相关文章

使用pipenv管理你的python项目

怎么使用pipenv管理你的python项目 原文链接:https://robots.thoughtbot.com/how-to-manage-your-python-projects-with-pipenv 在thoughtbot,我们用Ruby和Rails工作,但通常我们总是尝试使用最合适的语言或者框架来解决问题.我最近一直在探索机器学习技术,所以Python使用地更多. Ruby项目和Python项目处理之间的一个很大的区别就是管理依赖关系方式的不同.目前在Python语言中没有类似于Bu

01-使用pipenv管理项目环境

一.使用pipenv管理项目环境 首先为什么我们不在真实环境下做开发呢?真实环境的一些包被其他服务所依赖,我们安装的包和模块都混杂在一起,这样不便于项目管理,还有可能出现意想不到的错误,于是就出现了包管理的virtualenv.但virtualenv在使用的时候很不方便,每次都要激活还要退出.为了开发效率和便捷就出现了pipenv,它是requests库作者Kenneth Reitz开发的,pipenv结合了pip及virtualenv的功能和优点,其目的是替代virtualenv和pip,将p

创建成功的Python项目

创建成功的Python项目 前端开发工具技巧介绍—Sublime篇 SEO在网页制作中的应用 观察者模式 使用D3制作图表 英文原文:Create successful Python projects,编译:Elaine.Ye 创建一个成功的开源Python项目所涉及的并不仅仅是编写有用的代码,与其相关的还有社区的参与.越来越多的合作机会.技艺以及支持等.探索最佳的做法有助于你创建出自己的成功项目. 开源Python项目的生态系统丰富多样,这使得您能够站在巨人的肩膀上来开发下一个开源项目.此外,

python项目练习地址

作者:Wayne Shi链接:http://www.zhihu.com/question/29372574/answer/88744491来源:知乎著作权归作者所有,转载请联系作者获得授权. 目前是34个Python项目,会继续保持更新.Learn by doing才是正确的技术学习姿势.20160816更新:Python - 高德API+Python解决租房问题Python - 基于 Flask 及爬虫实现微信娱乐机器人Python - Python3 实现淘女郎照片爬虫Python - Py

以正确的方式开源 Python 项目(转)

大多数Python开发者至少都写过一个像工具.脚本.库或框架等对其他人也有用的工具.我写这篇文章的目的是让现有Python代码的开源过程尽可能清晰和无痛.我不是简单的指——“创建一个GitHub库,提交,在Reddit上发布,每天调用它”.在本文的结尾,你可以把现有的代码转换成一个能够鼓励他人使用和贡献的开源项目. 然而每一个项目都是不同的,但其中将现有代码开源的流程对所有的Python项目都是类似的.在另一个受欢迎的文章系列里我写了“以正确方式开始一个Django项目”,我将概述在开源Pyth

Python项目使用memcached缓存

前言许多Web应用都将数据保存到MySQL这样的关系型数据库管理系统中,应用服务器从中读取数据并在浏览器中显示. 但随着数据量的增大.访问的集中,就会出现数据库的负担加重.数据库响应恶化. 网站显示延迟等不良影响.分布式缓存是优化网站性能的重要手段,大量站点都通过可伸缩的服务器集群提供大规模热点数据缓存服务.通过缓存数据库查询结果,减少数据库访问次数,可以显著提高动态Web应用的速度和可扩展性.业界常用的有redis.memcached等,今天要讲的就是在python项目中如何使用memcach

Jenkins部署Python项目实战

一.背景 我们工作中常用Jenkins部署Java代码,因其灵活的插件特性,例如jdk,maven,ant等使得java项目编译后上线部署一气呵成,同样对于脚本语言类型如Python上线部署,利用Jenkins强大的插件功能,轻松实现CI/CD,但如果部署多项目到同一台服务器涉及环境一致性问题,对此可以利用容器技术Docker解决,也可以利用Python虚拟环境例如virutalenv或conda等优秀等工具解决,在此由于后期根据requirements来安装依赖包比较慢,且后期需要将Pytho

Gitlab Pipeline+Supervisor 实战Python项目CI/CD

一.背景 谈到到CI/CD,我们不禁会想到Gitlab + Jenkins + Docker等一些列优秀的工具,Jenkins以其丰富的插件及灵活配置已经非常好的满足我们日常工作中的CI/CD需求,通常的做法为Gitlab配置webhook,开发人员通过push代码或merge request可以触发执行一些列的测试部署上线工作,打通了开发到部署到整个生命周期,完成持续集成持续构建.在Gitlab 也是具有一套CI/CD到框架,通过简单的注册Gitlab Runner,根据业务测试部署需求撰写

惊艳发现VS工具python项目Search Paths的应用

之前,在没有发现VS工具python项目Search Paths的应用时,举个例子:假如项目的文件目录如下: maintest/maintest.py想要使用common/tools.py文件时,不得不在maintest.py中的代码添加这样的代码: import sys import os from sys import path parentdir = os.path.join( os.path.dirname(os.path.dirname(__file__))) path.append(