일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Linear algebra
- LaTeX
- Zotero
- 텝스공부
- 텝스
- 수식삽입
- matplotlib
- Numerical Analysis
- JAX
- teps
- 딥러닝
- 우분투
- 수치해석
- IEEE
- Python
- pytorch
- Statics
- ChatGPT
- 논문작성법
- 에러기록
- 논문작성
- 생산성
- Julia
- WOX
- 고체역학
- 옵시디언
- 인공지능
- obsidian
- MATLAB
- Dear abby
- Today
- Total
뛰는 놈 위에 나는 공대생
[python] Visual studio code에서 다운받은 패키지 사용하기(경로 설정 등) 본문
[python] Visual studio code에서 다운받은 패키지 사용하기(경로 설정 등)
보통의공대생 2024. 4. 16. 21:55
맨날 까먹어서 쓰는 글
다른 사람이 배포해놓은 라이브러리를 다운받아서 사용하면 그 안에 많은 모듈이 있다.
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
https://learnpython.com/blog/python-modules-packages-libraries-frameworks/
'프로그래밍 Programming > 파이썬 Python' 카테고리의 다른 글
[에러기록] 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 |
[Jupyter notebook] 내가 설정한 주피터 노트북 테마 (0) | 2023.02.23 |