Python 官方推荐的一款打包工具
程序员文章站
2022-03-18 14:01:59
译者:Jiong 链接: https://robots.thoughtbot.com/how-to-manage-your-python-projects-with-pipenv 在thoughtbot,我们用Ruby和Rails工作,但通常我们总是尝试使用最合适的语言或者框架来解决问题。 我最近一 ......
译者:jiong 链接: https://robots.thoughtbot.com/how-to-manage-your-python-projects-with-pipenv 在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项目中依赖的管理。我希望你也这样!
上一篇: Oracle完全复制表结构的存储过程
下一篇: JS高级---函数作为返回值使用
推荐阅读
-
推荐一款MongoDB的客户端管理工具--nosqlbooster
-
Android QA专用,Python实现不一样的多渠道打包工具详情
-
github5款优质的Python小工具(最后一款真神器)
-
推荐一款很好用的 垃圾文件清理工具:CCleaner
-
推荐一款关于MongoDB日志分析的工具--Mtools
-
SqlServer数据库如何转换成Mysql的一款工具推荐(mss2sql) 原创
-
python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)
-
20行Python代码实现一款永久免费PDF编辑工具的实现
-
推荐一款功能强大的Tomcat 管理监控工具,可替代Tomcat Manager tomcattomcat管理器web
-
python fabric编写的本地打包部署工具