설치 가능한 UnixAPI에서 경로 유지

설치 가능한 UnixAPI에서 경로 유지

Unix 환경에서 가상 머신용 API를 개발 중입니다. 대부분의 모듈은 Python으로 개발됩니다. 이에 대해 몇 가지 질문이 있습니다.

API 내부에서는 '/root/virtman/manager/'와 같은 절대 경로를 사용합니다. 모든 Unix 환경에서 이 API를 실행하는 것을 고려할 때 이 절대 경로를 모든 OS/머신에 범용으로 만들 수 있는 방법은 무엇입니까? 아니면 API가 설치된 특정 위치를 가정하고 모든 곳에 해당 경로를 제공해야 합니까?

많은 기사를 읽었지만 명확하게 이해하지 못했기 때문에 어떤 팁이나 제안이라도 도움이 될 것입니다.

답변1

경로가 호출 중인 실행 파일만 가리키는 경우 설치 중에 링크를 표준 ​​위치( /usr/bin/또는/usr/local/bin

다음을 사용합니다:

/usr/bin/myprog    
/opt/myprog/bin/myprog
/opt/myprog/data/picture_01.img

에 있어서는 안되는 링크 /usr/bin/myprog가 있습니다 . do를 통해 링크를 설정 하고 do에 포함하십시오:/opt/myprog/bin/myprog/opt/myprog/bin/$PATHsudo ln -s /opt/myprog/bin/myprog /usr/bin/opt/myprog/bin/myprog

import sys
import os

base_dir = os.path.realpath(sys.argv[0]).rsplit('/bin/', 1)[0]

/opt/myprog런타임에 동적으로 결정됨


Python API가 포함된 일부 모듈을 기반으로 하는 경우 해당 모듈이 시스템 Python의 PYTHONPATH 검색 경로에 설치되어 있는지 확인한 다음 import yourapimodulePython 실행 파일에서 이를 실행하고 사용할 수 있습니다.


어디에나 설치할 수 있는 데이터 파일인 경우 읽을 수 있는 구성 파일 ( 예 : ~/.config/yourapimodule/config.ini.~/.yourapimodule/config.ini~/.yourapimodule.ini.ini.json

1 Shameless 플러그: Python을 사용하여 argparse명령줄 인수를 처리하는 경우 이 패키지를 확인하세요.ruamel.appconfig제가 작성한 , 구성을 설정하고 명령줄 구문 분석을 위해 구성 파일에 기본값을 지정할 수 있습니다.

관련 정보