찾다
백엔드 개발파이썬 튜토리얼가상 환경, Docker 및 Shell 스크립트에 대한 나의 경험

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>




가상 환경을 사용하는 이유는 무엇입니까?

  • 깔끔하게 유지: 가상 환경은 프로젝트 종속성을 분리하여 유지하므로 서로 다른 프로젝트가 서로 충돌하지 않습니다.
  • 동일한 페이지 유지: 요구사항.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 컨테이너를 빌드하고 실행합니다.


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




왜 쉘 스크립트를 사용해야 합니까?

  • 모든 것을 지배하는 하나의 명령: 여러 명령을 실행하는 대신 스크립트만 실행하면 모든 것이 처리됩니다.
  • 더 이상 실수 없음: 설정 프로세스를 자동화하면 오류가 발생할 가능성이 줄어듭니다.
  • 어디서나 작동: 이 스크립트는 Linux, macOS 또는 심지어 Windows(Bash가 있는 경우)에서도 사용할 수 있습니다.

핵심요약: 언제 무엇을 사용해야 하는가

  • 가상 환경: Python 패키지 관리에 적합합니다. 종속성을 격리해야 하지만 시스템 수준 라이브러리는 필요하지 않은 경우 이를 사용하세요.
  • Docker: 다양한 시스템에서 일관된 환경이 필요한 경우에 적합합니다. 앱을 실행하는 데 필요한 모든 것이 포함되어 있습니다.
  • 셸 스크립트: 전체 설정 프로세스를 자동화하여 한 단계도 놓치지 않도록 하는 데 유용합니다.

개발 환경을 설정하는 것은 특히 협업 시 골치 아픈 일이 될 수 있습니다. 가상 환경은 확실한 첫 번째 단계이지만 상황이 까다로워지면 Docker를 사용하는 것이 좋습니다. 그리고 이 모든 것을 하나로 묶기 위해 쉘 스크립트를 사용하면 모든 것이 원활하게 실행될 수 있습니다.

이 내용이 비슷한 문제를 겪고 있는 모든 사람에게 도움이 되기를 바랍니다. 이러한 문제를 극복할 수 있는 다른 방법이 있다면 아래 댓글로 알려주세요. 여러분의 의견을 듣고 싶습니다.

위 내용은 가상 환경, Docker 및 Shell 스크립트에 대한 나의 경험의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
Linux 터미널에서 Python 버전을 볼 때 발생하는 권한 문제를 해결하는 방법은 무엇입니까?Linux 터미널에서 Python 버전을 볼 때 발생하는 권한 문제를 해결하는 방법은 무엇입니까?Apr 01, 2025 pm 05:09 PM

Linux 터미널에서 Python 버전을 보려고 할 때 Linux 터미널에서 Python 버전을 볼 때 권한 문제에 대한 솔루션 ... Python을 입력하십시오 ...

HTML을 구문 분석하기 위해 아름다운 수프를 어떻게 사용합니까?HTML을 구문 분석하기 위해 아름다운 수프를 어떻게 사용합니까?Mar 10, 2025 pm 06:54 PM

이 기사에서는 HTML을 구문 분석하기 위해 파이썬 라이브러리 인 아름다운 수프를 사용하는 방법을 설명합니다. 데이터 추출, 다양한 HTML 구조 및 오류 처리 및 대안 (SEL과 같은 Find (), find_all (), select () 및 get_text ()와 같은 일반적인 방법을 자세히 설명합니다.

Tensorflow 또는 Pytorch로 딥 러닝을 수행하는 방법은 무엇입니까?Tensorflow 또는 Pytorch로 딥 러닝을 수행하는 방법은 무엇입니까?Mar 10, 2025 pm 06:52 PM

이 기사는 딥 러닝을 위해 텐서 플로와 Pytorch를 비교합니다. 데이터 준비, 모델 구축, 교육, 평가 및 배포와 관련된 단계에 대해 자세히 설명합니다. 프레임 워크, 특히 계산 포도와 관련하여 주요 차이점

파이썬의 수학 모듈 : 통계파이썬의 수학 모듈 : 통계Mar 09, 2025 am 11:40 AM

Python의 통계 모듈은 강력한 데이터 통계 분석 기능을 제공하여 생물 통계 및 비즈니스 분석과 같은 데이터의 전반적인 특성을 빠르게 이해할 수 있도록 도와줍니다. 데이터 포인트를 하나씩 보는 대신 평균 또는 분산과 같은 통계를보고 무시할 수있는 원래 데이터에서 트렌드와 기능을 발견하고 대형 데이터 세트를보다 쉽고 효과적으로 비교하십시오. 이 튜토리얼은 평균을 계산하고 데이터 세트의 분산 정도를 측정하는 방법을 설명합니다. 달리 명시되지 않는 한,이 모듈의 모든 함수는 단순히 평균을 합산하는 대신 평균 () 함수의 계산을 지원합니다. 부동 소수점 번호도 사용할 수 있습니다. 무작위로 가져옵니다 수입 통계 Fracti에서

인기있는 파이썬 라이브러리와 그 용도는 무엇입니까?인기있는 파이썬 라이브러리와 그 용도는 무엇입니까?Mar 21, 2025 pm 06:46 PM

이 기사는 Numpy, Pandas, Matplotlib, Scikit-Learn, Tensorflow, Django, Flask 및 요청과 같은 인기있는 Python 라이브러리에 대해 설명하고 과학 컴퓨팅, 데이터 분석, 시각화, 기계 학습, 웹 개발 및 H에서의 사용에 대해 자세히 설명합니다.

Python으로 명령 줄 인터페이스 (CLI)를 만드는 방법은 무엇입니까?Python으로 명령 줄 인터페이스 (CLI)를 만드는 방법은 무엇입니까?Mar 10, 2025 pm 06:48 PM

이 기사는 Python 개발자가 CLIS (Command-Line Interfaces) 구축을 안내합니다. Typer, Click 및 Argparse와 같은 라이브러리를 사용하여 입력/출력 처리를 강조하고 CLI 유용성을 향상시키기 위해 사용자 친화적 인 디자인 패턴을 홍보하는 세부 정보.

한 데이터 프레임의 전체 열을 Python의 다른 구조를 가진 다른 데이터 프레임에 효율적으로 복사하는 방법은 무엇입니까?한 데이터 프레임의 전체 열을 Python의 다른 구조를 가진 다른 데이터 프레임에 효율적으로 복사하는 방법은 무엇입니까?Apr 01, 2025 pm 11:15 PM

Python의 Pandas 라이브러리를 사용할 때는 구조가 다른 두 데이터 프레임 사이에서 전체 열을 복사하는 방법이 일반적인 문제입니다. 두 개의 dats가 있다고 가정 해

파이썬에서 가상 환경의 목적을 설명하십시오.파이썬에서 가상 환경의 목적을 설명하십시오.Mar 19, 2025 pm 02:27 PM

이 기사는 프로젝트 종속성 관리 및 충돌을 피하는 데 중점을 둔 Python에서 가상 환경의 역할에 대해 설명합니다. 프로젝트 관리 개선 및 종속성 문제를 줄이는 데있어 생성, 활성화 및 이점을 자세히 설명합니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.