搜索
首页后端开发Python教程我对虚拟环境、Docker 和 Shell 脚本的体验

My Experience with Virtual Environments, Docker, and Shell Scripts

本周,我有一个很酷的作业,我和我的同学必须向彼此的开源项目添加功能。然而,当我的同学尝试运行我的项目时,他遇到了一个令人讨厌的依赖问题,导致整个应用程序崩溃。经过一番反复考虑,我们成功地通过使用虚拟环境、Docker 和简单的 shell 脚本的组合来修复它。让我们来分析一下发生了什么以及这些工具如何让您的生活变得更轻松。

1. 虚拟环境

如果您使用 Python,虚拟环境 是必须的。它们基本上创建了一个隔离的空间,您可以在其中为您的项目安装包,而不会弄乱您的全局 Python 设置。这就像拥有自己的 Python 游乐场,您可以在其中安全地添加和删除包。

以下是如何设置的快速概述:


python3 -m venv venv
source venv/bin/activate  # For Windows, use: venv\Scripts\activate


之后,您可以使用 pip 安装所有软件包:


<p>pip install -r requirements.txt</p>




为什么使用虚拟环境?

  • 保持整洁:虚拟环境将项目依赖关系分开,因此不同的项目不会互相干扰。
  • 保持同一页面:您可以创建一个requirements.txt 文件以确保团队中的每个人都使用相同的软件包版本。

当他们达不到要求时

有时,即使在虚拟环境中,事情仍然可能会出错——就像他们为我们所做的那样!依赖关系仍然崩溃,因为它更多的是系统级问题(呃)。这就是 Docker 拯救世界的地方。

2. 码头工人

Docker 创建容器来打包您的应用程序及其所有依赖项,包括系统库。这意味着它将在每台机器上以相同的方式运行。

这是我们的基本 Dockerfile 的样子:


<p># Use a lightweight Python image<br>
FROM python:3.9-slim</p>

<p># Set up a working directory<br>
WORKDIR /usr/src/app</p>

<p># Copy over the application files<br>
COPY . .</p>

<p># Install dependencies<br>
RUN pip install --no-cache-dir -r requirements.txt</p>

<p># Run the application<br>
CMD ["python", "app.py"]</p>




Docker 的优点

  • 一致性:无论您使用什么系统,Docker 都可以确保您的应用程序在任何地方都运行相同。
  • 没什么惊喜:Docker 包含所有系统库和依赖项,因此您不会遇到那些烦人的“缺少库”错误。
  • 易于共享:您可以与其他人共享您的 Docker 设置,他们只需运行一些简单的命令即可开始。

使用 Docker 运行应用程序

使用以下命令构建并运行 Docker 容器:


<p>docker build -t my-python-app .<br>
docker run -p 5000:5000 my-python-app</p>



  1. Shell 脚本

Shell 脚本就像您项目的私人助理。他们为您处理所有无聊的设置工作。我编写了一个简单的脚本 (setup.sh),用于设置虚拟环境、安装依赖项、构建 Docker 映像并运行容器。它看起来是这样的:


<p>#!/bin/bash</p>

<p># Set up virtual environment<br>
python3 -m venv venv<br>
source venv/bin/activate</p>

<p># Install dependencies<br>
pip install -r requirements.txt</p>

<p># Build Docker image<br>
docker build -t my-python-app .</p>

<p># Run Docker container<br>
docker run -p 5000:5000 my-python-app</p>




为什么要费心使用 Shell 脚本?

  • 一个命令即可统治所有:您无需运行一堆命令,只需运行脚本,它就会处理所有事情。
  • 不再犯错误:自动化设置过程意味着您不太可能犯错误。
  • 适用于任何地方:这些脚本可以在 Linux、macOS 甚至 Windows(如果您有 Bash)上使用。

TL;DR:何时使用什么

  • 虚拟环境:非常适合管理 Python 包。当您需要隔离依赖项但不需要系统级库时使用它们。
  • Docker:非常适合当您需要跨不同机器的一致环境时。它包含了您的应用程序运行所需的一切。
  • Shell 脚本:方便自动化整个设置过程,这样您就不会错过任何一步。

设置开发环境可能会让人头疼,尤其是在协作时。虚拟环境是坚实的第一步,但当事情变得棘手时,Docker 就是最佳选择。为了将所有这些结合在一起,shell 脚本可以使一切顺利运行。

希望这可以帮助任何处理类似问题的人! 如果您有任何其他方法来克服此类问题,请在下面的评论中告诉我。我很想听听你的消息。

以上是我对虚拟环境、Docker 和 Shell 脚本的体验的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
Python:游戏,Guis等Python:游戏,Guis等Apr 13, 2025 am 12:14 AM

Python在游戏和GUI开发中表现出色。1)游戏开发使用Pygame,提供绘图、音频等功能,适合创建2D游戏。2)GUI开发可选择Tkinter或PyQt,Tkinter简单易用,PyQt功能丰富,适合专业开发。

Python vs.C:申请和用例Python vs.C:申请和用例Apr 12, 2025 am 12:01 AM

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。 Python以简洁和强大的生态系统着称,C 则以高性能和底层控制能力闻名。

2小时的Python计划:一种现实的方法2小时的Python计划:一种现实的方法Apr 11, 2025 am 12:04 AM

2小时内可以学会Python的基本编程概念和技能。1.学习变量和数据类型,2.掌握控制流(条件语句和循环),3.理解函数的定义和使用,4.通过简单示例和代码片段快速上手Python编程。

Python:探索其主要应用程序Python:探索其主要应用程序Apr 10, 2025 am 09:41 AM

Python在web开发、数据科学、机器学习、自动化和脚本编写等领域有广泛应用。1)在web开发中,Django和Flask框架简化了开发过程。2)数据科学和机器学习领域,NumPy、Pandas、Scikit-learn和TensorFlow库提供了强大支持。3)自动化和脚本编写方面,Python适用于自动化测试和系统管理等任务。

您可以在2小时内学到多少python?您可以在2小时内学到多少python?Apr 09, 2025 pm 04:33 PM

两小时内可以学到Python的基础知识。1.学习变量和数据类型,2.掌握控制结构如if语句和循环,3.了解函数的定义和使用。这些将帮助你开始编写简单的Python程序。

如何在10小时内通过项目和问题驱动的方式教计算机小白编程基础?如何在10小时内通过项目和问题驱动的方式教计算机小白编程基础?Apr 02, 2025 am 07:18 AM

如何在10小时内教计算机小白编程基础?如果你只有10个小时来教计算机小白一些编程知识,你会选择教些什么�...

如何在使用 Fiddler Everywhere 进行中间人读取时避免被浏览器检测到?如何在使用 Fiddler Everywhere 进行中间人读取时避免被浏览器检测到?Apr 02, 2025 am 07:15 AM

使用FiddlerEverywhere进行中间人读取时如何避免被检测到当你使用FiddlerEverywhere...

Python 3.6加载Pickle文件报错"__builtin__"模块未找到怎么办?Python 3.6加载Pickle文件报错"__builtin__"模块未找到怎么办?Apr 02, 2025 am 07:12 AM

Python3.6环境下加载Pickle文件报错:ModuleNotFoundError:Nomodulenamed...

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器