首頁 > 後端開發 > Python教學 > 我對虛擬環境、Docker 和 Shell 腳本的體驗

我對虛擬環境、Docker 和 Shell 腳本的體驗

Barbara Streisand
發布: 2024-10-05 06:08:30
原創
897 人瀏覽過

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中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板