728x90

 

Python 프로젝트에서 가상환경을 사용하면 각 프로젝트마다 독립적으로 패키지를 관리할 수 있어, 다른 프로젝트와의 충돌을 방지할 수 있습니다. 이번 글에서는 Python 가상환경을 만드는 방법과 활용 방법을 설명합니다.

1. 가상환경 만들기

가상환경을 만들려면 아래 명령어를 터미널에 입력합니다:


python3 -m venv <가상환경 이름>
    

예를 들어, `myenv`라는 이름의 가상환경을 만들고 싶다면 아래와 같이 입력합니다:


python3 -m venv myenv
    

이 명령어를 실행하면, `myenv`라는 디렉토리가 생성되고 그 안에 가상환경이 설정됩니다.

2. 가상환경 활성화

가상환경을 활성화하려면 운영 체제에 맞는 명령어를 사용합니다:

  • Linux/macOS: source myenv/bin/activate
  • Windows: .\myenv\Scripts\activate

가상환경을 활성화하면, 프롬프트 앞에 `(myenv)`처럼 가상환경 이름이 표시됩니다.

3. 가상환경 비활성화

가상환경을 비활성화하려면 아래 명령어를 입력합니다:


deactivate
    

이 명령어를 입력하면 가상환경이 비활성화되고, 시스템의 기본 Python 환경으로 돌아갑니다.

4. 가상환경에 패키지 설치

가상환경이 활성화된 상태에서 필요한 패키지를 설치할 수 있습니다. 예를 들어, `requests` 라이브러리를 설치하려면:


pip install requests
    

이 명령어를 통해 `requests` 라이브러리가 가상환경 내에 설치됩니다.

5. 가상환경에 설치된 패키지 목록 확인

가상환경에 설치된 패키지를 확인하려면 다음 명령어를 입력합니다:


pip list
    

6. 의존성 관리 (requirements.txt)

프로젝트에서 사용된 모든 패키지 목록을 `requirements.txt` 파일로 저장할 수 있습니다. 아래 명령어를 입력하여 현재 가상환경에 설치된 모든 패키지를 기록합니다:


pip freeze > requirements.txt
    

다른 환경에서 동일한 패키지들을 설치하려면 `requirements.txt` 파일을 사용해 아래 명령어로 설치할 수 있습니다:


pip install -r requirements.txt
    

결론

Python 가상환경을 사용하면 각 프로젝트마다 독립적인 패키지 환경을 유지할 수 있어 다른 프로젝트들과의 충돌을 방지할 수 있습니다. 위의 방법을 따라 가상환경을 만들고, 프로젝트에 맞는 패키지를 설치하고 관리해 보세요.

728x90

'Python' 카테고리의 다른 글

Python 3.13.2 설치하기 (Rocky Linux)  (0) 2025.02.08
파이썬으로 웹 크롤링하는 방법  (1) 2025.02.03
728x90

 

Python 3.13.2 버전이 출시되었으며, 이를 Rocky Linux에 설치하는 방법을 안내드립니다. Python을 소스 코드로 설치하는 방법을 사용하여 최신 버전을 손쉽게 설치할 수 있습니다.

1. 필수 패키지 설치

Python을 소스 코드에서 빌드하려면 몇 가지 개발 도구와 라이브러리들이 필요합니다. 먼저 필수 패키지들을 설치합니다:


sudo dnf groupinstall "Development Tools"
sudo dnf install gcc openssl-devel bzip2-devel libffi-devel
    

2. Python 3.13.2 소스 코드 다운로드

Python 공식 웹사이트에서 Python 3.13.2의 소스를 다운로드합니다:


cd /opt
sudo wget https://www.python.org/ftp/python/3.13.2/Python-3.13.2.tgz
    

3. 압축 해제 및 설치

다운로드한 파일의 압축을 풀고 설치를 진행합니다:


# 압축 해제
sudo tar xvf Python-3.13.2.tgz
cd Python-3.13.2

# 빌드 설정
sudo ./configure --enable-optimizations

# Python 빌드 및 설치
sudo make altinstall
    

`altinstall`을 사용하면 기존의 Python 버전과 충돌을 피할 수 있습니다. `--enable-optimizations` 옵션은 성능을 최적화하는데 사용됩니다.

make altinstall 완료까지는 상당한 시간이 소요될 수 있습니다.

4. 설치 확인

설치가 완료되면 Python 버전이 제대로 설치되었는지 확인합니다:


python3.13 --version
    

정상적으로 설치되었다면, Python 3.13.2 버전이 출력됩니다.

5. 기본 Python 버전 변경 (선택 사항)

기본 Python 버전으로 Python 3.13.2를 사용하고 싶다면 `alternatives` 명령어를 사용하여 변경할 수 있습니다:


# Python 3.13.2을 기본 python으로 설정
sudo alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.13 1
    

이렇게 하면 `python3` 명령어를 입력했을 때 Python 3.13.2가 실행됩니다.

결론

위 방법을 따라 Python 3.13.2를 Rocky Linux에 설치할 수 있습니다. 이 과정은 Python 소스 코드를 직접 빌드하여 설치하는 방법으로, 최신 버전의 Python을 쉽게 사용할 수 있게 해줍니다.

728x90

'Python' 카테고리의 다른 글

Python 가상환경 만들기  (0) 2025.02.08
파이썬으로 웹 크롤링하는 방법  (1) 2025.02.03
728x90

 

파이썬으로 웹 크롤링하는 방법

파이썬을 사용하여 웹사이트에서 데이터를 크롤링하는 방법을 알아보겠습니다. 이 글에서는 BeautifulSouprequests 라이브러리를 사용하여 웹 페이지를 크롤링하는 방법을 다룹니다.

1. 필요한 라이브러리 설치

크롤링을 위해서는 requestsBeautifulSoup 라이브러리가 필요합니다. 아래 명령어로 라이브러리를 설치합니다:

pip install requests
pip install beautifulsoup4

2. 간단한 크롤러 코드 예시

다음은 간단한 웹 크롤러를 작성하는 예시입니다. 이 예시에서는 특정 웹 페이지에서 제목을 추출합니다.


import requests
from bs4 import BeautifulSoup

# 1. 웹 페이지 요청
url = "https://example.com"  # 크롤링할 웹 사이트 URL
response = requests.get(url)

# 2. 웹 페이지가 정상적으로 로드되었는지 확인
if response.status_code == 200:
    print("웹 페이지 로드 성공!")
else:
    print("웹 페이지 로드 실패!")

# 3. 페이지 내용 파싱
soup = BeautifulSoup(response.text, "html.parser")

# 4. 예시로 제목(tag <h1>) 추출
title = soup.find('h1')  # <h1> 태그에서 제목을 찾음
if title:
    print(f"페이지 제목: {title.text}")
else:
    print("제목을 찾을 수 없습니다.")
    

3. 주요 단계 설명

1. 웹 페이지 요청 (requests.get)

웹 페이지를 요청하여 서버로부터 HTML 데이터를 받아옵니다. requests.get(url)을 사용하여 페이지를 요청하고, 그 응답을 response 객체에 저장합니다.

응답의 상태 코드를 확인하려면 response.status_code를 사용합니다. response.text는 HTML 콘텐츠를 텍스트 형식으로 반환합니다.

2. BeautifulSoup로 HTML 파싱

BeautifulSoup은 HTML 구조를 트리 형태로 파싱하여 쉽게 데이터를 추출할 수 있도록 도와줍니다. 파싱한 HTML은 아래와 같이 저장합니다:

soup = BeautifulSoup(response.text, "html.parser")

3. 특정 데이터 추출

BeautifulSoup을 사용하여 HTML 구조에서 원하는 데이터를 추출할 수 있습니다. 예를 들어, 페이지에서 <h1> 태그를 찾거나, <a> 태그를 모두 찾을 수 있습니다.


# 모든 <a> 태그 추출
links = soup.find_all('a')

# 각 링크의 텍스트와 URL을 출력
for link in links:
    text = link.get_text()  # 링크 텍스트
    href = link.get('href')  # 링크 URL
    print(f"링크 텍스트: {text}, 링크 URL: {href}")
    

4. 추가적인 크롤링 팁

1. 동적 페이지 크롤링 (JavaScript 렌더링)

일부 웹 사이트는 JavaScript로 동적으로 콘텐츠를 로드합니다. 이런 경우 Selenium을 사용하여 브라우저를 자동으로 제어하면서 동적 페이지를 크롤링할 수 있습니다.

2. 시간 간격을 두고 크롤링하기

너무 빠르게 요청을 보내면 서버에 부담을 줄 수 있으므로, time.sleep()을 사용하여 요청 간에 시간 간격을 두는 것이 좋습니다.

import time

# 1초의 시간 간격을 두고 크롤링
time.sleep(1)

3. 웹 사이트의 robots.txt 확인

웹 사이트의 robots.txt 파일을 확인하여 크롤링이 허용된 영역과 그렇지 않은 영역을 확인하는 것이 중요합니다.

4. 크롤링 속도 조절

웹 서버에 부담을 주지 않도록 크롤링 속도를 조절해야 합니다. 예를 들어, 동시에 여러 페이지를 요청하지 않거나, 요청 간에 간격을 두는 방법이 있습니다.

import time
time.sleep(3)  # 3초 간격으로 크롤링

5. 크롤링 시 유용한 라이브러리

  • Selenium: 동적 페이지에서 JavaScript로 렌더링된 콘텐츠를 크롤링하는 데 사용합니다.
  • Pandas: 크롤링한 데이터를 정리하고 CSV 파일 등으로 저장할 때 유용합니다.
  • lxml: BeautifulSoup의 속도를 개선하는 파서입니다.

결론

이렇게 파이썬과 BeautifulSoup, requests를 사용하여 기본적인 웹 크롤링을 할 수 있습니다. 크롤링하려는 웹 페이지의 HTML 구조를 이해하고, 원하는 데이터를 어떻게 추출할지 결정하는 것이 중요합니다.

다음 단계로, 데이터 저장이나 특정 페이지의 여러 정보 추출 등을 시도해 볼 수 있습니다!

728x90

'Python' 카테고리의 다른 글

Python 가상환경 만들기  (0) 2025.02.08
Python 3.13.2 설치하기 (Rocky Linux)  (0) 2025.02.08

+ Recent posts