Skip to main content

프로젝트의 내부 모듈들에서 간편하게 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

module_path_manager-0.0.1.tar.gz (3.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

module_path_manager-0.0.1-py3-none-any.whl (4.9 kB view details)

Uploaded Python 3

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

Hashes for module_path_manager-0.0.1.tar.gz
Algorithm Hash digest
SHA256 ac0a2ec7dbc083bb26c84f26d6d19967106254e751b1c382d915bca8c33c6424
MD5 85737b4f2007697dd4c1fbc6196c46f5
BLAKE2b-256 82cfcac1ee3019d069f44e28295b61968af3bf0ddeede763864a82724b73c3d3

See more details on using hashes here.

File details

Details for the file module_path_manager-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for module_path_manager-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d6ed13367c9c39d7f8dc2e37aca1059af3b036834a1d592f74979c71a2234530
MD5 d8535896ac5a6add0f390bf173585b30
BLAKE2b-256 d4dd6c7601d674d8df4e71a059ad030de4c9d74236749915f093ed79c354c6ae

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page