[python] Visual studio code에서 다운받은 패키지 사용하기(경로 설정 등)

2024. 4. 16. 21:55·프로그래밍 Programming/파이썬 Python

 

맨날 까먹어서 쓰는 글

 

다른 사람이 배포해놓은 라이브러리를 다운받아서 사용하면 그 안에 많은 모듈이 있다.

 

 

0. 라이브러리 vs 모듈 vs 패키지

 

 

내가 사용하기 위해 만든 다양한 함수,변수,클래스 등을 묶어서 .py로 만들면 모듈이라고 하고

이들을 묶어서 __init__.py와 함께 만들어서 폴더에 넣으면 패키지 (init.py이 없으면 패키지로 인식이 안되는 문제가 있다.)

패키지와 모듈들을 묶어서 하나로 만들면 라이브러리라고 한다.

 

 

numpy나 pandas 같은 것들이 파이썬 패키지이고 그 안에 다양한 모듈들이 있다.

이를 모아서 더 큰 라이브러리를 만들 수 있다. 예를 들면 Matplotlib, PyTorch 등.

이것보다 더 큰 개념을 framework라고 하는데 이는 보통 개발자들이 사용하는 툴이라고 한다.

 

 

1. 파일 경로 확인

 

import sys

print(sys.path) # 탐색할 경로들
print(sys.modules) # system이 보유한 모듈들


import os
print(os.getcwd()) # 현재 경로
print(os.path.dirname(os.getcwd())) # 현재 경로를 기준으로 상위 경로

 

 

2. 경로 추가

2-1. 일시적 방법

경로는 코드로 다음과 같이 추가 가능하다.

import os,sys
sys.path.append(os.path.dirname(os.getcwd()))

 

또는 PYTHONPATH 환경 변수에 내가 원하는 경로를 추가하는 방법도 있다.

 

import os
os.environ["PYTHONPATH"] = "경로"

 

vscode를 사용한다면, vscode에 있는 기능으로 폴더 추가도 가능하다. 빨간 밑줄친 곳을 눌러서 경로추가하면 .vscode 안에 settings.json 파일이 추가된다.

 

# .vscode/settings.json 파일 안에
{
    "python.analysis.extraPaths": [
        "./jax"
    ]
}

 

 

 

3. 경로 상의 문제

 

나는 보통 가상환경을 만들고 그 안에서 코드를 사용하는데 원하는 모듈을 가져올 때 문제가 발생했다.

 

from jax.config import config


라고 할 때 가상환경 상의 jax 먼저 살펴보기 때문에 내가 가져온 라이브러리 내부의 jax 폴더를 살펴보지 않는다.

 

sys.modules (현재 환경 상의 모듈과 패키지) > built-in modules (파이썬 내장 모듈) -> sys.path (현재 디렉토리, PYTHONPATH 환경 변수 경로, 직접 추가한 경로)

순서로 살펴보기 때문에 위처럼 경로를 추가해도 내가 가상환경에 설치한 패키지와 내가 작업하는 폴더 상의 패키지 중  가상환경을 먼저 선택하게 되어있다.

 

이 순서를 바꿔보고 싶었으나 방법을 찾을 수 없어서 중복되는 가상환경 패키지는 삭제하는 것을 택했다.

 


참고자료

 

https://velog.io/@hwang-eunji/python-import%EC%9D%98-%EA%B2%80%EC%83%89-%EC%88%9C%EC%84%9C

 

python import의 검색 순서

Python module 이해하기Python pacakage 이해하기에서 살펴본 import 에 대해 더 알아보자. import를 통해 모듈과 패키지를 불러오면 어디서 어떻게 가져오는 걸까? 아래 목록을 보자.sys.modulesbuilt-in modulessys.

velog.io

https://learnpython.com/blog/python-modules-packages-libraries-frameworks/

 

Python Modules, Packages, Libraries, and Frameworks

Let’s discuss the difference between Python modules, packages, libraries, and frameworks – in simple terms and with multiple examples.

learnpython.com

 

저작자표시 비영리 변경금지 (새창열림)

'프로그래밍 Programming > 파이썬 Python' 카테고리의 다른 글

[Python] matplotlib colormap, colorbar 사용 방법  (0) 2024.12.07
[에러기록] moviewriter ffmpeg unavailable; using pillow instead.  (0) 2024.04.17
[matplotlib] matplotlib에서 latex 사용 오류  (0) 2024.01.26
[matplotlib] 그래프 색상/마커 다르게 그리기  (0) 2023.09.18
[Python] MCMC Sampling library  (0) 2023.08.24
'프로그래밍 Programming/파이썬 Python' 카테고리의 다른 글
  • [Python] matplotlib colormap, colorbar 사용 방법
  • [에러기록] moviewriter ffmpeg unavailable; using pillow instead.
  • [matplotlib] matplotlib에서 latex 사용 오류
  • [matplotlib] 그래프 색상/마커 다르게 그리기
보통의공대생
보통의공대생
수학,프로그래밍,기계항공우주 등 공부하는 기록들을 남깁니다.
  • 보통의공대생
    뛰는 놈 위에 나는 공대생
    보통의공대생
  • 전체
    오늘
    어제
    • 분류 전체보기 (458)
      • 공지 (1)
      • 영어 공부 English Study (40)
        • 텝스 TEPS (7)
        • 글 Article (21)
        • 영상 Video (10)
      • 연구 Research (99)
        • 최적화 Optimization (3)
        • 데이터과학 Data Science (7)
        • 인공지능 Artificial Intelligent (40)
        • 제어 Control (45)
      • 프로그래밍 Programming (103)
        • 매트랩 MATLAB (25)
        • 파이썬 Python (33)
        • 줄리아 Julia (2)
        • C++ (3)
        • 리눅스 우분투 Ubuntu (6)
      • 항공우주 Aeronautical engineeri.. (21)
        • 항법 Navigation (0)
        • 유도 Guidance (0)
      • 기계공학 Mechanical engineering (13)
        • 열역학 Thermodynamics (0)
        • 고체역학 Statics & Solid mechan.. (10)
        • 동역학 Dynamics (1)
        • 유체역학 Fluid Dynamics (0)
      • 수학 Mathematics (34)
        • 선형대수학 Linear Algebra (18)
        • 미분방정식 Differential Equation (3)
        • 확률및통계 Probability & Sta.. (2)
        • 미적분학 Calculus (1)
        • 복소해석학 Complex Analysis (5)
        • 실해석학 Real Analysis (0)
      • 수치해석 Numerical Analysis (21)
      • 확률 및 랜덤프로세스 Random process (2)
      • 추론 & 추정 이론 Estimation (3)
      • 기타 (26)
        • 설계 프로젝트 System Design (8)
        • 논문작성 Writing (55)
        • 세미나 Seminar (2)
        • 생산성 Productivity (3)
      • 유학 생활 Daily (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Statics
    논문작성법
    텝스
    IEEE
    수치해석
    에러기록
    논문작성
    Zotero
    LaTeX
    딥러닝
    ChatGPT
    pytorch
    Python
    Julia
    JAX
    고체역학
    teps
    수식삽입
    Dear abby
    matplotlib
    Linear algebra
    Numerical Analysis
    인공지능
    obsidian
    생산성
    WOX
    우분투
    MATLAB
    옵시디언
    텝스공부
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
보통의공대생
[python] Visual studio code에서 다운받은 패키지 사용하기(경로 설정 등)
상단으로

티스토리툴바