怎么使用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项目中依赖的管理。 我希望你也这样!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

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

    在thoughtbot,我们用Ruby和Rails工作,但通常我们总是尝试使用最合适的语言或者框架来解决问题.我最近一直在探索机器学习技术,所以Python使用地更多. Ruby项目和Python项目处理之间的一个很大的区别就是管理依赖关系方式的不同.目前在Python语言中没有类似于Bundler或Gemfiles的东西,所以通常Python开发人员将使用Virtualenv创建一个虚拟环境,再创建一个依赖包列表requirements.txt,然后他们可以使用 Pip进行安装. 这种方法一般

  • 使用pipenv管理python虚拟环境的全过程

    pipenv 是Kenneth Reitz大神的作品,能够有效管理Python多个环境,各种包.过去我们一般用virtualenv搭建虚拟环境,管理python版本,但是跨平台的使用不太一致,且有时候处理包之间的依赖总存在问题:过去也常常用 pip进行包的管理,pip已经足够好,但是仍然推荐pipenv,相当于virtualenv和pip的合体,且更加强大.pipenv开源之后,在GitHub上有很高人气(截止于现在有9600多星). pipenv主要有以下特性: (1)pipenv集成了pip

  • 如何完美的建立一个python项目

    下面有python教程栏目为大家建立一个完美的python项目,希望可以帮助到大家,一起讨论进步~ 当开始一个新的 Python 项目时,大家很容易一头扎进去就开始编码.其实花一点时间选择优秀的库,将为以后的开发节省大量时间,并带来更快乐的编码体验. 在理想世界中,所有开发人员的关系是相互依赖和关联的(协作开发),代码要有完美的格式.没有低级的错误.并且测试覆盖了所有代码.另外,所有这些将在每次提交时都可以得到保证.(代码风格统一.类型检测.测试覆盖率高.自动检测) 在本文中,我将介绍如何建立一

  • 使用apidoc管理RESTful风格Flask项目接口文档方法

    使用apidoc管理RESTful风格Flask项目接口文档方法 apidoc项目地址 flask扩展包地址 文档示例地址 1.安装nodejs sudo apt-get install nodejs sudo apt install nodejs-legacy sudo apt install npm 2.安装apidoc npm install apidoc -g 3.Flask扩展包安装 pip install flask-apidoc 4.添加扩展包到Flask项目 依赖环境 flask

  • Anaconda 查看、创建、管理和使用python环境的方法

    由于不同的项目需要用不同的python版本,于是使用Anaconda来进行版本管理,现记录一下经验: 在官网下载并安装好Anaconda以后(非常简单,此处不赘述): 1. 查看Python环境 conda info --env可以看到所有python环境,前面有个'*'的代表当前环境: 2.创建Python环境 conda create --name python35 python=3.5 代表创建一个python3.5的环境,我们把它命名为python35 安装成功后的消息: 现在我们再用c

  • 使用Python项目生成所有依赖包的清单方式

    1.安装所需工具 pip install pipreqs 2.进入到python项目主目录 pipreqs ./ 3.完成上面命令会生成requirements.txt 4.sudo pip install -r requirements.txt即可 补充知识:解决Python开发过程中依赖库打包问题的方法 在Python开发的过程中,经常会遇到各种各样的小问题,比如在一台计算机上调试好的程序,迁移到另外一台机子上后往往会应为工程项目依赖库的缺失而造成错误. 除了一遍又一遍对着被抛出错误去重新i

  • Docker如何部署Python项目的实现详解

    Docker 是一个开源项目,为开发人员和系统管理员提供了一个开放平台,可以将应用程序构建.打包为一个轻量级容器,并在任何地方运行.Docker 会在软件容器中自动部署应用程序. 在本篇中,我将介绍如何 docker 化一个 Python Django 应用程序,然后使用一个 docker-compose 脚本将应用程序作为容器部署到 docker 环境. 环境 操作系统 dbnuo@localhost ~ sw_vers ProductName: Mac OS X ProductVersion

  • GitHub上值得推荐的8个python 项目

    GitHub 无疑是代码托管领域的先行者,Python 作为一种通用编程语言,已经被千千万万的开发人员用来构建各种有意思或有用的项目.以下我们会介绍一些使用 Python 构建的GitHub上优秀的项目. 1. Manim GitHub链接: https://github.com/3b1b/manim B站链接:https://space.bilibili.com/88461692 Manim 是一个说明性数学动画引擎,使用 manim你可以创建动画视频,还可以控制用于插图和图表的动画. 这个项

  • 像线程一样管理进程的Python multiprocessing库

    一.创建一个进程 要创建一个进程,最简单的方式是用一个目标函数实例化一个Process对象,然后与threading一样调用start()函数让它工作.示例如下: import multiprocessing def worker(): for i in range(3): print(i) if __name__=="__main__": p = multiprocessing.Process(target=worker) p.start() 运行之后,效果如下: 需要注意的是,mu

  • 适合Python项目的五大SQL连接器

    目录 1. PyMySQL(https://pypi.org/project/PyMySQL/) 2. MySQLdb(https://mysqlclient.readthedocs.io/user_guide.html) 3. QTSQL(https://doc.qt.io/qt-5/qtsql-index.html) 4. Psycopg2(https://pypi.org/project/psycopg2/) 5. SuperSQLite(https://github.com/plasti

随机推荐