ホームページ >バックエンド開発 >Python チュートリアル >仮想環境、Docker、およびシェル スクリプトに関する私の経験

仮想環境、Docker、およびシェル スクリプトに関する私の経験

Barbara Streisand
Barbara Streisandオリジナル
2024-10-05 06:08:30898ブラウズ

My Experience with Virtual Environments, Docker, and Shell Scripts

今週、私とクラスメートがお互いのオープンソース プロジェクトに機能を追加しなければならないという素晴らしい課題がありました。しかし、クラスメートが私のプロジェクトを実行しようとしたとき、アプリ全体がクラッシュするという厄介な依存関係の問題に遭遇しました。少し行ったり来たりした後、仮想環境、Docker、単純なシェル スクリプトを組み合わせて使用​​することで問題を修正することができました。何が起こったのか、そしてこれらのツールがどのようにあなたの生活を楽にするのかを詳しく見てみましょう。

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. シェルスクリプト

シェル スクリプトはプロジェクトのパーソナル アシスタントのようなものです。面倒なセットアップ作業はすべて彼らがやってくれます。仮想環境のセットアップ、依存関係のインストール、Docker イメージの構築、コンテナーの実行を行う簡単なスクリプト (setup.sh) を作成しました。それは次のようになります:


<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>




なぜわざわざシェル スクリプトを使用するのでしょうか?

  • 1 つのコマンドですべてを制御: 大量のコマンドを実行する代わりに、スクリプトを実行するだけですべてが処理されます。
  • もう間違いはありません: セットアップ プロセスを自動化すると、間違いを犯す可能性が低くなります。
  • どこでも動作: これらのスクリプトは、Linux、macOS、または Windows (Bash を使用している場合) でも使用できます。

TL;DR: いつ何を使用するか

  • 仮想環境: Python パッケージの管理に最適です。依存関係を分離する必要があるが、システムレベルのライブラリは必要ない場合にこれらを使用します。
  • Docker: 異なるマシン間で一貫した環境が必要な場合に最適です。アプリの実行に必要なものがすべて詰め込まれています。
  • シェル スクリプト: セットアップ プロセス全体を自動化し、手順を見逃さないようにするのに便利です。

開発環境のセットアップは、特に共同作業を行う場合に頭痛の種になることがあります。仮想環境は確実な最初のステップですが、問題が生じた場合は Docker が最適です。そして、すべてを結び付けるために、シェル スクリプトを使用すると、すべてがスムーズに実行されます。

これが同様の問題に対処している人にとって役立つことを願っています! この種の問題を解決する他の方法がある場合は、以下のコメントでお知らせください。ぜひご意見をお待ちしております。

以上が仮想環境、Docker、およびシェル スクリプトに関する私の経験の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。