프로젝트의 내부 모듈들에서 간편하게 chdir와 sys.path를 설정할 수 있는 라이브러리
Project description
module-path-manager
프로젝트의 내부 모듈들에서 간편하게 chdir와 sys.path를 설정할 수 있는 라이브러리
사용 예시
아래와 같은 디렉토리 구조의 프로젝트가 있다고 가정합니다.
project/
├── README.md
├── module1/
│ └── a.py
├── module2/
│ └── b.py
├── module3/
│ └── test/
│ └── c.py
└── main.py
- 예시 1.
main.py에서a.py,b.py,c.py를 import 한다면 아래와 같이 사용할 것입니다.
# main.py
from module1 import a
from module2 import b
from module3.test import c
- 예시 2.
a.py에서main.py,b.py,c.py를 import 하려면 어떻게 할까요?main.py는 상위 디렉토리에 있습니다.b.py는 상위 디렉토리에서module2디렉토리에 접근해야 합니다.c.py는 상위 디렉토리에서module3/test디렉토리에 접근해야 합니다.
# a.py
import os, sys
sys.path.append('../')
os.chdir('../')
import main
from module2 import b
from module3.test import c
- 예시 3.
b.py에서main.py,a.py,c.py를 import 하려면 위 예시와 유사한 방식으로 하면 됩니다.
# b.py
import os, sys
sys.path.append('../')
os.chdir('../')
import main
from module1 import a
from module3.test import c
- 예시 4. 그렇다면
c.py에서main.py,a.py,b.py를 import 하려면 어떻게 할까요?main.py는 상위 디렉토리의 상위 디렉토리에 있습니다.a.py는 상위 디렉토리의 상위 디렉토리에서module1디렉토리에 접근해야 합니다.b.py는 상위 디렉토리의 상위 디렉토리에서module2디렉토리에 접근해야 합니다.
# c.py
import os, sys
sys.path.append('../../')
os.chdir('../../')
import main
from module1 import a
from module2 import b
- 위의 예시들을 보면 모듈 간의 import가 복잡해지면서 코드가 길어지고 가독성이 떨어지는 문제가 있습니다.
- 이러한 문제를 해결하기 위해
module-path-manager를 사용하면 아래와 같이 간단하게 import를 할 수 있습니다.
# main.py / a.py / b.py / c.py
import model_path_manager
module_path_manager.set(current_file=__file__, target_file='main.py', depth=3, syspath=True, chdir=True)
import main
from module1 import a
from module2 import b
from module3.test import c
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file module_path_manager-0.0.1.tar.gz.
File metadata
- Download URL: module_path_manager-0.0.1.tar.gz
- Upload date:
- Size: 3.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ac0a2ec7dbc083bb26c84f26d6d19967106254e751b1c382d915bca8c33c6424
|
|
| MD5 |
85737b4f2007697dd4c1fbc6196c46f5
|
|
| BLAKE2b-256 |
82cfcac1ee3019d069f44e28295b61968af3bf0ddeede763864a82724b73c3d3
|
File details
Details for the file module_path_manager-0.0.1-py3-none-any.whl.
File metadata
- Download URL: module_path_manager-0.0.1-py3-none-any.whl
- Upload date:
- Size: 4.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6ed13367c9c39d7f8dc2e37aca1059af3b036834a1d592f74979c71a2234530
|
|
| MD5 |
d8535896ac5a6add0f390bf173585b30
|
|
| BLAKE2b-256 |
d4dd6c7601d674d8df4e71a059ad030de4c9d74236749915f093ed79c354c6ae
|