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/
$PATH
sudo 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 yourapimodule
Python 실행 파일에서 이를 실행하고 사용할 수 있습니다.
어디에나 설치할 수 있는 데이터 파일인 경우 읽을 수 있는 구성 파일 ( 예 : ~/.config/yourapimodule/config.ini
.~/.yourapimodule/config.ini
~/.yourapimodule.ini
.ini
.json
1 Shameless 플러그: Python을 사용하여 argparse
명령줄 인수를 처리하는 경우 이 패키지를 확인하세요.ruamel.appconfig
제가 작성한 , 구성을 설정하고 명령줄 구문 분석을 위해 구성 파일에 기본값을 지정할 수 있습니다.