Python 官方推荐的一款打包工具
来源:互联网 发布:wincc无法访问数据库 编辑:程序博客网 时间:2024/06/05 23:55
原文链接: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,
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项目中依赖的管理。 我希望你也这样!
————广告时间————
《马哥Linux云计算及架构师》课程,由知名Linux布道师马哥创立,经历了8年的发展,联合阿里巴巴、唯品会、大众点评、腾讯、陆金所等大型互联网一线公司的马哥课程团队的工程师进行深度定制开发,课程采用 Centos7.2系统教学,加入了大量实战案例,授课案例均来自于一线的技术案例,培养过20%的学员月薪超过3万。
开课时间:11月06号
扫描二维码领取学习资料
感谢您抽出 · 来阅读此文
更多Linux好文请点击【阅读原文】哦
↓↓↓
- Python 官方推荐的一款打包工具
- 介绍一款绿色的VB打包工具
- 介绍一款绿色的VB打包工具
- 推荐一款很好用的一款扒网站的工具
- 推荐一款很好用的一款扒网站的工具
- 推荐一款好用的telnet工具
- 推荐一款linux下的对比工具
- 推荐一款网络可视化的工具gephi
- 使用python和pyqt开发一款简易打包工具
- 推荐一款Python编辑器
- python-recsys:一款实现推荐系统的python库
- 推荐一款工具--Visual Paradigm
- 推荐一款博客备份工具!
- 推荐一款web画图工具
- StarUML---推荐一款UML工具
- 推荐一款博客备份工具!
- 推荐一款原型设计工具
- 推荐一款卸载程序工具
- 传化智联如何拿下第248张第三方支付牌照
- npm设置代理
- happens-before揭秘
- LeetCode Weekly Contest 52 Longest Univalue Path(链表dfs)
- 【内附彩蛋】十一出去浪,请带上我的祝福
- Python 官方推荐的一款打包工具
- WPF读写config配置文件及XML数据的学习
- ios系统下不能自动播放视频
- 运维,就要时刻准备着
- android 百分比优先级的问题
- XML文档--DTD
- Linux 进程管理之四大名捕
- 防止重复提交
- C++类型范围和负数取模运算规则。