当前位置: 首页 > 知识库问答 >
问题:

Docker容器python环境与python虚拟环境

庞鸿骞
2023-03-14

我主要用python编程,并且有一些虚拟环境方面的经验。我是新的软件,并开始寻找docker来运行我的代码。我想了解它的功能和工作原理。

据我所知,docker容器就像虚拟环境,在执行时运行一组指令,可以将其中包含的所有内容视为一个实体(因此它或其他内容不会相互制约?)。当我读到更多关于容器的内容时,它们听起来非常完美,可以消除对虚拟环境的任何需求,但仍然不确定。如果能澄清一下,我将不胜感激,因为我还没有在网上找到任何东西。

共有3个答案

孟修竹
2023-03-14

两者中没有任何一个可以取代另一个。这取决于你在做什么。

Python虚拟环境是一种将所有应用程序依赖项封装在单个环境(实际上是一个目录)中的方法。这些依赖项是支持您正在使用的操作系统版本的其他应用程序和软件包。

Docker容器是一种通过共享大量操作系统文件以低资源消耗运行虚拟机的方法(更多详细信息,请参阅Docker文档)

所以

如果您需要创建一个开发环境;建议使用docker,因为您可以将所有开发人员的确切开发体验加倍。一切都将在一个有自己的操作系统版本和自己的文件(虚拟)的虚拟机中。Python virtual Environment不会100%帮助其他开发人员,除非他们使用与您相同的操作系统版本,并且他们可以复制您部署应用程序的确切步骤

但是,如果您正在创建一个将部署远程服务器的包(比方说通过使用anble),docker将是一个额外的不需要的步骤。Python环境会很好地完成这项工作,没有任何问题。

此外,拥有包含许多python虚拟环境的docker是非常常见的;每个服务一个环境。所以,即使是docker图像也可以包含python venv

戚英逸
2023-03-14

我更喜欢将容器看作是操作系统之上的操作系统。你可以在谷歌上搜索关于docker的很多信息,但如果用简单的语言来说,docker是一个运行在操作系统之上的薄层,它使用操作系统的资源(不像VM),并运行自己封闭的环境。

有品
2023-03-14

python虚拟环境的主要目的是隔离每个项目的环境,这意味着每个项目都可以有自己的依赖项,而不管其他项目有什么依赖项。

什么是虚拟环境

但是当涉及到docker时,您可以将每个docker映像视为一个独立的环境,您不需要在Dockerfile中创建或维护虚拟环境,因为Dockerfile应该基于Python的特定版本,并且应该运行单个项目。

python版本docker

简而言之,如果你有三个项目需要

  • 项目A需要Python 3.6
  • 项目B需要Python 3.7
  • 项目C需要Python 3.8

所有这些都需要为每个项目选择基本图像

  • 来自python:3.6的项目A
  • 项目B来自python:3.7
  • 来自python:3.8的项目C

 类似资料:
  • 这份教程是帮助你安装和使用 Python 的包 本指南会告诉你如何安装和使用必要的工具。值得注意的是 Python 可以做许多许多的事情,至于你如何去安装和管理你的依赖可能会根据你项目的不同而不同。这份指南更多是开发和部署网络服务(包括 web 应用),但是这份指南同样适用于帮助你管理任何项目的开发和测试环境。 注意:这份指南是在 Python 3 版本下完成的,如果你由于不可抗拒的原因仍然在使用

  • python 的虚拟环境可以为一个 python 项目提供独立的解释环境、依赖包等资源,既能够很好的隔离不同项目使用不同 python 版本带来的冲突,而且还能方便项目的发布。 virtualenv virtualenv可用于创建独立的 Python 环境,它会创建一个包含项目所必须要的执行文件。 安装 virtualenv $ pip install virtualenv 配置 pip 安装第

  • 在我的Dockerfile中(当然是在将其复制到容器中之后)可以解决我的问题,但是对这个答案的注释显示它没有。之后,我看到了这篇文章,它展示了如何在docker容器中设置一个新的venv,但没有回答我的问题。许多其他的答案让我无休止的疯狂追逐,所以我决定在这里问。希望一个好的答案能解决我的问题,并为那些将来在docker容器中定制python包面临这个问题的人服务。 我的问题: 如何使用复制到do

  • 本文向大家介绍快速创建python 虚拟环境,包括了快速创建python 虚拟环境的使用技巧和注意事项,需要的朋友参考一下   python安装第三方库大都是通过pip命令安装,这个命令确实是很简便的,而对于每个独立的项目来说,需要用到的库或许会不同,如果删除或更新原来已有的版本库,或许会导致其他的项目出错,这时候,虚拟环境就能够起作用了。哈哈~~~   所以呢,通过python创建虚拟环境,可以

  • 本文向大家介绍ubuntu环境下python虚拟环境的安装过程,包括了ubuntu环境下python虚拟环境的安装过程的使用技巧和注意事项,需要的朋友参考一下 一. 虚拟环境搭建 在开发中安装模块的方法: pip install 模块名称 之前我们安装模块都是直接在物理环境下安装,这种安装方法,后面一次安装的会覆盖掉前面一次安装的。那如果一台机器上面开发多个项目使用到不同版本的模块呢?怎么样做才能

  • 问题内容: 我在工作空间设置中声明了一个python虚拟环境,一切正常。 现在,我有一个构建任务,该任务调用一个目标,该目标又调用一个pip包。当我运行它时,即使它是选定的解释器,它也不会使用我的。 我尝试在调用命令之前添加一个,但嵌入式终端出现错误。 如何同时使用虚拟环境和任务? 问题答案: 我使用以下task.json测试了它,它可以工作: 首先激活虚拟环境,然后执行make。