반응형
Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- objectdetection
- 머신러닝
- Deep learning
- pytorch
- python 문법
- pychram
- CNN
- 파이썬
- torch.nn.Module
- AI
- Anaconda
- docker
- LSTM
- ViT
- Torchvision
- wsl2
- vision transformer
- 가상환경
- pip install
- torch.nn
- python
- __init__
- __call__
- rnn
- 딥러닝
- tensorflow
- DeepLearning
- 가상환경구축
- ubuntu
- 파이썬문법
Archives
- Today
- Total
인공지능을 좋아하는 곧미남
[python] sys.path, sys.modules를 이용해서 나의 워크 스페이스 경로를 맞춰보자! 본문
code_study/python world
[python] sys.path, sys.modules를 이용해서 나의 워크 스페이스 경로를 맞춰보자!
곧미남 2025. 1. 3. 10:40728x90
오늘은 sys.path, sys.modules에 대해 알아보고, python에서 소스코드가 실행되는 장소를 적절하게 설정하는 방법을 알아보겠습니다.
제가 겪은 경험으로는 python pip lib openwakeword 모듈을 install해서 /usr/local/lib/python3.10/dist-packages/openwakeword 이 경로에 있는 소스 파일들에 vsc가 접근해서 수정하게 되더라고요! 근데 저는 수정된 내용을 github에 바로 commit하기 위해서 local path인 /home/openWakeWord/openwakeword 에서 소스 파일들을 수정하려고 했습니다. 하지만, 처음에 import 할 당시 /usr/local/lib/python3.10/dist-packages/openwakeword에 module path가 캐싱되어 /home/openWakeWord/openwakeword 경로를 읽지를 못했어요. 그래서 openwakeword와 관련된 module path를 모두 삭제하고 다시 import 하는 작업을 진행했습니다. 여기서 다시 import 할때 sys.path를 활용해 내가 실행하고자 하는 /home/openWakeWord 시스템 폴더 경로를 가장 앞에 insert해주고 다시 import를 실행하면 됩니다.
자 이렇게 말로 설명한 내용을 코드로 보여드릴게요.
1. 이미 캐싱된 Module을 제거!
import sys
# 기존 openwakeword 모듈 제거
modules_to_remove = [key for key in sys.modules if key.startswith("openwakeword")]
for module in modules_to_remove:
del sys.modules[module]
2. sys.path에 저장된 시스템 경로를 가장 상위에 저장하고 중복되는 path는 삭제
# /home/openWakeWord 중복 제거 및 하나만 남기기
# sys.path 삭제: sys.path.remove("/home/openWakeWord")
import sys
home_path = "/home/openWakeWord"
sys.path.insert(0, home_path)
unique_paths = []
for path in sys.path:
if path not in unique_paths:
unique_paths.append(path)
sys.path = unique_paths
# 확인
print("Cleaned sys.path:", sys.path)
3. 다시 module import
import openwakeword
import openwakeword.data
import openwakeword.utils
import openwakeword.metrics
반응형
'code_study > python world' 카테고리의 다른 글
[python] __init__.py를 활용해 python source 파일 관리하기 (0) | 2024.12.31 |
---|---|
[python] 다형성이란 뭘까? (1) | 2024.12.26 |
[python] 캡슐화란 뭘까? (0) | 2024.12.26 |
[python] 메모리 관리는 어떻게 할까? (0) | 2024.12.26 |
[python] 추상화란 뭘까요? (0) | 2024.12.26 |
Comments