반응형
반응형

[python] 파이썬 requirements.txt 처리

 

파이썬 프로젝트에서 requirements.txt 파일은 프로젝트가 의존하는 모든 외부 라이브러리(패키지)의 목록을 관리하는 데 사용되는 표준 방식입니다. 이 파일을 사용하면 개발 환경을 일관되게 유지하고, 다른 개발자나 배포 환경에서도 동일한 의존성을 쉽게 설치할 수 있습니다.


requirements.txt의 역할과 중요성

requirements.txt는 주로 다음과 같은 목적으로 사용됩니다:

  • 의존성 관리: 프로젝트에 필요한 모든 라이브러리와 그 버전을 명확하게 기록합니다.
  • 재현성 확보: 특정 시점의 개발 환경을 다른 컴퓨터나 환경에서도 정확하게 재현할 수 있게 합니다.
  • 협업 용이: 팀원들이 동일한 라이브러리 버전을 사용하여 개발할 수 있도록 도와 충돌을 방지합니다.
  • 배포 환경 설정: 애플리케이션을 서버나 컨테이너(Docker 등)에 배포할 때 필요한 의존성을 자동으로 설치할 수 있게 합니다.

requirements.txt 파일 생성 및 관리

1. 수동으로 파일 작성하기

가장 기본적인 방법은 필요한 라이브러리 이름을 직접 requirements.txt 파일에 한 줄에 하나씩 작성하는 것입니다. 특정 버전이나 최소 버전을 명시할 수도 있습니다.

 

# requirements.txt 예시
requests==2.31.0      # requests 라이브러리 버전 2.31.0 지정
beautifulsoup4>=4.9.3 # beautifulsoup4 라이브러리 버전 4.9.3 이상
pandas                # pandas 라이브러리 최신 버전 설치
numpy~=1.23.0         # numpy 라이브러리 1.23.x 버전 중 최신 설치 (1.23.0 <= version < 1.24.0)
  • ==: 정확한 버전 지정 (가장 안전하지만 유연성이 떨어짐)
  • >=: 최소 버전 지정
  • ~=: 호환 가능한 릴리스(Compatible release) 지정. ~=1.23.0은 1.23.0 이상 1.24.0 미만 버전을 의미합니다. 마이너 버전 업데이트는 허용하지만 메이저 버전 업데이트는 방지합니다.
  • 버전 지정이 없으면 pip는 항상 최신 버전을 설치합니다.

2. 현재 환경의 라이브러리 목록 내보내기

현재 파이썬 환경(가상 환경)에 설치된 모든 라이브러리 목록을 requirements.txt 파일로 자동 생성할 수 있습니다.

pip freeze > requirements.txt
  • 이 명령은 현재 환경에 설치된 모든 패키지와 그 정확한 버전을 requirements.txt 파일에 기록합니다.
  • 주의할 점은 프로젝트에 직접적으로 필요한 라이브러리뿐만 아니라, 그 라이브러리들이 의존하는 다른 라이브러리(하위 의존성)까지 모두 포함된다는 것입니다. 따라서 파일이 상당히 길어질 수 있습니다.
  • 팁: 새로운 프로젝트를 시작할 때는 깨끗한 가상 환경에서 필요한 라이브러리만 pip install로 설치하고, 개발이 완료될 시점에 pip freeze > requirements.txt를 실행하여 해당 프로젝트에 정확히 필요한 의존성만 기록하는 것이 좋습니다.

requirements.txt 파일 처리 (라이브러리 설치)

requirements.txt 파일에 명시된 모든 라이브러리를 설치하려면 다음 명령어를 사용합니다.

pip install -r requirements.txt

 

  • 이 명령은 requirements.txt 파일을 읽어 거기에 명시된 모든 라이브러리를 한 번에 다운로드하고 설치합니다.
  • 권장 사항: 항상 가상 환경(Virtual Environment) 내에서 이 작업을 수행하세요. 가상 환경을 사용하면 프로젝트별로 독립적인 의존성 관리가 가능하여 시스템 전체의 파이썬 환경과 충돌하는 것을 방지할 수 있습니다.
# 1. 가상 환경 생성 (처음 한 번만)
python -m venv my_project_env # 또는 conda create -n my_project_env python=3.9

# 2. 가상 환경 활성화
# Windows: .\my_project_env\Scripts\activate
# macOS/Linux: source my_project_env/bin/activate
# Conda: conda activate my_project_env

# 3. requirements.txt 파일이 있는 디렉토리로 이동
# cd /path/to/your/project

# 4. 라이브러리 설치
pip install -r requirements.txt

 

 

requirements.txt 관리 팁

  • 가상 환경 사용: 위에서 강조했듯이, 모든 파이썬 프로젝트는 전용 가상 환경 내에서 관리하는 것이 표준이자 가장 좋은 방법입니다.
  • 개발/배포 의존성 분리: 프로젝트 규모가 커지면 개발(테스트 프레임워크, 린터 등)에만 필요한 라이브러리와 실제 배포에 필요한 라이브러리를 분리하여 여러 개의 requirements 파일을 만들기도 합니다.
    • requirements.txt (배포용 필수 라이브러리)
    • requirements-dev.txt (개발용 라이브러리)
    • 설치할 때는 pip install -r requirements.txt -r requirements-dev.txt 와 같이 여러 파일을 지정할 수 있습니다.
  • 버전 고정의 장단점:
    • 장점: requests==2.31.0처럼 정확히 버전을 고정하면 다른 환경에서 설치할 때 버전에 따른 호환성 문제가 발생할 확률이 매우 낮아집니다.
    • 단점: 새롭게 발견된 버그 수정이나 보안 패치가 적용된 최신 버전의 이점을 누리기 어렵습니다.
  • 업데이트: 시간이 지나면서 라이브러리를 업데이트해야 할 경우, requirements.txt 파일의 버전을 직접 수정하거나, pip install --upgrade <package_name>으로 개별 패키지를 업데이트한 후 pip freeze > requirements.txt를 다시 실행하여 반영할 수 있습니다.

requirements.txt 파일은 파이썬 프로젝트의 건강한 생태계를 유지하는 데 필수적인 도구입니다.

 

 

 

반응형
반응형

[Python] 파이썬 python 데이터 처리 위한 기본 설치 라이브러리

 

1. Anaconda 설치  https://www.anaconda.com/download

 

pip install numpy pandas matplotlib seaborn scikit-learn

 

 

반응형
반응형

Python에서 현재 설치된 라이브러리(패키지) 목록을 확인하는 방법은 여러 가지가 있습니다. 
주로 pip 패키지 관리자를 사용하여 설치된 패키지 목록을 조회합니다. 
아래는 다양한 방법으로 현재 설치된 라이브러리 목록을 확인하는 방법을 설명합니다.

1. pip list 명령어 사용

가장 일반적인 방법은 터미널 또는 명령 프롬프트에서 pip list 명령을 사용하여 설치된 모든 패키지 목록을 조회하는 것입니다.


pip list




위 명령을 실행하면 설치된 모든 패키지의 목록이 출력됩니다.


2. pip freeze 명령어 사용

pip freeze 명령은 pip list와 유사하게 현재 환경에 설치된 패키지와 그 버전을 출력합니다. 이 명령은 보통 requirements.txt 파일을 생성하는 데 사용됩니다.


pip freeze




3. Python 스크립트를 통한 확인

Python 스크립트 내에서 pkg_resources 모듈을 사용하여 현재 설치된 패키지를 조회할 수 있습니다.

import pkg_resources

# 현재 설치된 패키지 목록 조회
installed_packages = pkg_resources.working_set
installed_packages_list = sorted(["%s==%s" % (i.key, i.version) for i in installed_packages])

for package in installed_packages_list:
    print(package)




4. conda list (conda 환경에서)

만약 Anaconda 또는 Miniconda와 같은 conda 패키지 관리자를 사용하고 있다면, conda list 명령을 사용하여 현재 환경에 설치된 패키지 목록을 확인할 수 있습니다.

conda list



위 방법 중 하나를 선택하여 현재 Python 환경에 설치된 모든 패키지 목록을 확인할 수 있습니다. 

주로 pip list 명령이 가장 일반적이고 널리 사용되는 방법입니다.

반응형
반응형
1. Pandas

Pandas is a software library written for the python programming language for data manipulation and analysis.

Pandas is well suited for many different kinds of data:
  • Tabular data with heterogeneously-types columns.
  • Ordered and unordered time series data.
  • Arbitrary matrix data with row and column labels.
  • Any other form of observational / statistical data sets.
 The data actually need not be labeled at all to be placed into a pandas data structure.

2. NumPy

Numpy is the core library for scientific computing in Python. It provides a high-performance multidimensional array object, and tools for working with these arrays.



3. Matplotlib

Matplotlib is a Python package used for 2D graphics.
  • Bar graph
  • Histograms
  • Scatter Plot
  • Pie Plot
  • Hexagonal Bin Plot
  • Area Plot

 


4. Selenium

The selenium package is used to automate web browser interaction from Python.


5. OpenCV

OpenCV- Python is a library of Python designed to solve computer vision problems.


6. SciPy

Scipy is a free and open-source Python library used for scientific computing and technical computing.


7. Scikit-Learn

Scikit-learn (formerly scikits.learn) is a free software machine learning library for the Python programming language. It features various classification, regression and clustering algorithms.


8.  PySpark

The Spark Python API (PySpark) exposes the Spark programming model to Python.



9. Django

Diango is a Python web framework. A framework provides a structure and common methods to make the life of a web application developer much easier for building flexible, scalable and maintainable web applications

  • Django is a high-level and has a MVC-MVT styled architecture.
  • Django web framework is written on quick and powerful Python language.
  • Django has a open-source collection of libraries for building a fully functioning web application.


10. Tensor Flow

TensorFlow is a Python library used to implement deep networks. In TensorFlow, computation is approached as a dataflow graph.


반응형
반응형

PyQt5에 대해  https://doc.qt.io/

 



  • PyQt5는 Qt5 어플리케이션 프레임워크에 대한 파이썬 버전입니다. Qt는 플랫폼에 관계없이 다양한 기능을 포함하는 C++ 라이브러리이자 개발툴입니다.
  • PyQt5는 이러한 1000여 개의 클래스들을 포함하는 파이썬 모듈의 모음입니다.
  • PyQt5는 윈도우, 리눅스, macOS, 안드로이드, iOS를 지원합니다.
  • PyQt5의 홈페이지(https://www.riverbankcomputing.com/software/pyqt/intro)에서 최신의 그리고 안정적인 버전의 PyQt5와 최신 버전의 문서를 얻을 수 있습니다.
  • PyQt5 개발자는 GPL과 상업용 라이센스 중 하나를 선택할 수 있습니다.
    (PyQt5 라이센스 관련: https://www.riverbankcomputing.com/commercial/license-faq)
반응형
반응형

생활코딩 마인드맵 라이브러리 cytoscape 사용법

https://velog.io/@takeknowledge/%EC%83%9D%ED%99%9C%EC%BD%94%EB%94%A9-%EB%A7%88%EC%9D%B8%EB%93%9C%EB%A7%B5-cytoscape-%ED%99%9C%EC%9A%A9-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-56k4in7315

 

생활코딩 마인드맵 라이브러리 cytoscape 사용법

🚀 발단 생활코딩에 접속해서 수업 소개 섹션으로 가면 수업간의 관계를 확인할 수 있는 마인드 맵이 있습니다. 개인적으로 공부한 것들의 흐름을 위와 같이 정리하면 좋을 것 같았습니다. 그

velog.io

생활코딩에 접속해서 수업 소개 섹션으로 가면 수업간의 관계를 확인할 수 있는 마인드 맵이 있습니다.

개인적으로 공부한 것들의 흐름을 위와 같이 정리하면 좋을 것 같았습니다.
그래서 해당 라이브러리가 cytoscape라는 것을 확인 후 이를 활용해 비슷한 사이트를 개발을 해봤습니다.

그러나 cytoscape 관련한 별도의 한글 정보가 없어 영어를 잘 못하는 저는 수많은 삽질의 시간을 거쳐야 했기에 다른 분들은 해당 라이브러리를 좀 더 편하게 쓰실 수 있도록 개발하면서 알게 된 것들을 한글기록으로 남깁니다. 도움이 되었으면 좋겠습니다!

 

 

https://github.com/nomelancholy/project-skill-map

 

GitHub - nomelancholy/project-skill-map: cytoscape를 활용한 프로젝트-주도-공부 기록 웹 어플리케이션

cytoscape를 활용한 프로젝트-주도-공부 기록 웹 어플리케이션. Contribute to nomelancholy/project-skill-map development by creating an account on GitHub.

github.com

 

반응형

+ Recent posts