7个Python环境管理工具
知识管理工具7: Notion可定制化笔记与项目管理,适合个人或团队使用。 #生活技巧# #工作学习技巧# #知识管理工具#
通常,Python是一种非常灵活的编程语言--这一特性也体现到其环境管理中。不幸的是,这可能意味着您的Python安装变得混乱不堪。存在大量的环境管理工具来试图控制这种混乱……但是最终可能会变得更加复杂,尤其是对于新的Python开发人员而言!
在这篇文章中,我们将介绍可用工具的优缺点,以便您可以对如何安装python环境做出明智的决定。实际上,我们只需要在一些原则上达成共识:
虚拟化是您的好帮手:避免每个项目之间的依赖冲突,实现项目之间互相隔离的Python环境可以使您的生活变得无比轻松
项目应该是可复制的:依赖关系越紧密,您自己或其他开发人员实时复制代码的运行环境时就越容易
自包含=可部署:所有的环境和依赖打包发布越容易,项目在不同的系统上运行(例如从开发环境迁移到部署)就越容易
所有Python虚拟化解决方案都可以满足这些要求-尽管像其他任何工具一样,您会发现关于哪种最好的强烈观点!我们的目标是使您能够就您的Python环境做出明智的决定,并为自己省去一些麻烦。我们将从最简单的低级标准工具开始,并逐步研究更新,更强大(尽管有时更深奥和更多限制)的选项,并一路讨论优缺点-我鼓励您考虑所有能够满足您项目的需求的选项 。
到底是谁的环境?
首先,新的Python程序员可能会想知道-当我们说环境控制时,我们在谈论什么?大致而言,我们希望了解三个控制级别:
已安装的python包:我们可以将什么导入到正在运行的Python实例中?
已安装的python二进制文件本身:我们实际上在运行什么版本和具有什么特色的Python?
非python,系统级的依存关系:数字包底层的C / C ++工具链之类的东西怎么办?
如果能够显式地控制项目中的任何(或全部)事物,打包项目并使其在新的环境中启动和运行变得容易得多。最简单的说,Python中的大多数虚拟化工具都会创建一个虚拟环境,如下所示:
image.gif
这样的目录包含运行Python实例需要的所有内容-bin中的二进制文件和可调用脚本(如特定环境的python可执行文件),lib中已安装的所有Python软件包以及所需的任何其他非Python头文件和配置。通过设置指向该目录的系统路径(通常使用激活脚本来完成),我们可以运行一个完全独立的Python版本,包括其可执行文件,已安装的软件包等。永远不要在此目录之外引用Python工具。除了项目独立的优势外,这也适用于需要在没有root权限的系统上运行Python的情况,因为我们可以在具有用户权限的位置中创建虚拟环境。
由于虚拟环境有自己的pip软件包管理器,因此将软件包安装到环境中很简单-我们只要在环境运行时简单地进行pip install即可,并且这些软件包会被放置在正确的位置。这也使我们可以指定环境的依赖-我们可以仅使用已知的Python版本(因为我们要使用相同的可执行文件)和列出了所需软件包及其版本的requirements.txt文件来重新创建环境,这些设置直接作用于pip install命令。
由于环境激活是由系统路径变量控制的,因此从技术上讲,我们可以将该目录放置在任何地方-不需要把环境包和项目放在一起,正如Node.js项目一样。保留虚拟环境及其关联的项目代码(假定它不被git记录,因为我们只需要实际追踪Python版本和requirements 文件,则可能会很有用),但是当您为所有的Python项目使用集中式目录时也同样适用。
因此,不用多说,让我们看看我们在环境管理方面有哪些选择!
内置:****venv
从3.3版开始,Python标准库附带了一个简单的内置工具venv,为了创建虚拟环境。只需调用
image
(根据需要替换您的venv路径)将在指定目录中创建上述虚拟环境以及启动脚本-通过调用可以用来激活或停用该环境
image
激活后,pip install(独立软件包或来自requirements 文件)将按预期工作。要打包一个虚拟环境以在别处复制,您只需要生成一个包含环境内容的requirements 文件:
image
如果环境处于活动状态,则会生成一个requirements 文件,该文件可以安装到另一个系统上的全新虚拟环境中。
优点:
Python附带,无需其他工具
创建一个几乎可以使用所有工具的标准虚拟环境:Requirements.txt适用于任何使用pip的环境管理器
缺点:
只能管理安装的软件包:会适用任意Python来创建环境,因此您仍然无法人工管理Python版本
除了pip安装可用以外别无选择
比venv更多:****virtualenv
实际上,有一个较旧的工具(可追溯到Python 2.x)可创建这些环境。实际上,venv是通过将virtualenv功能的子集引入Python 3.3+标准库中而创建的。仍然可以通过pip支持和安装该工具-尽管用户应注意,该工具仅适用于当前处于活动状态的Python(系统默认安装)。为了避免与系统软件包冲突(以及在用户缺乏安装到系统Python所需权限的情况下),可以使用pip install --user virtualenv在每个用户的基础上进行安装。安装后,调用类似于venv:
image.gif
在指定位置创建一个虚拟环境目录,可以像venv一样激活/停用该目录。值得注意的是,我们可以选择提供一个可调用的Python--venv为调用它的Python创建一个环境,virtualenv可以为系统上可用的任何Python安装创建一个环境,这意味着我们只通过从系统Python运行一个工具便能为其他Python创建环境(如果省略了-p选项,则默认为使用当前活动的Python版本)。创建后,pip install指令将依据名称或requirements 文件工作。
优点:
创建与venv相同的标准虚拟环境,可与大多数工具完美配合
可以通过相同的调用为任何已安装的Python创建环境
包括一些高级功能,例如能够为环境创建引导脚本的功能
缺点:
<网址:7个Python环境管理工具 https://www.yuejiaxmz.com/news/view/739375
相关内容
pyenv =》python 版本和python 开发工作环境管理神器下载python写个小工具
【编程学习】7个超级好用的提升Python效率工具
使用Python实现个人财务管理工具
Python:任务自动化工具
推荐七个Python效率工具!
【Python学习】趣味工具
Python任务管理实践:自动化工作流程
(开题)flask框架个人任务管理系统APP(程序+论文+python)
用python做一个任务管理系统